在itextsharp库中 使用PdfStamper创建的文件路径如何获取
时间: 2023-12-10 13:40:24 浏览: 63
使用PdfStamper创建的PDF文件路径可以通过PdfStamper对象的GetUnderlyingOutputStream方法获取,代码示例如下:
```
string pdfFilePath = "example.pdf";
using (FileStream pdfFile = new FileStream(pdfFilePath, FileMode.Create))
{
// 创建PdfStamper对象
PdfStamper pdfStamper = new PdfStamper(new PdfReader(pdfFilePath), pdfFile);
// 获取PDF文件路径
string filePath = ((FileStream)(pdfStamper.GetUnderlyingOutputStream())).Name;
// 关闭PdfStamper对象
pdfStamper.Close();
}
```
这里先创建一个FileStream对象来表示输出的PDF文件,然后使用PdfStamper创建PdfStamper对象并使用GetUnderlyingOutputStream方法获取PDF文件路径,最后关闭PdfStamper对象即可。
相关问题
使用 itextsharp库中的PdfContentByte给pdf添加水印时支持中文
是的,使用iTextSharp库中的PdfContentByte给PDF添加水印时,是支持中文的。你可以使用BaseFont类来设置中文字体,然后在PdfContentByte对象上使用ShowTextAligned方法来添加中文水印。
以下是一个示例代码,演示如何使用iTextSharp给PDF添加中文水印:
```csharp
using iTextSharp.text;
using iTextSharp.text.pdf;
// 创建一个PDF文档对象
Document document = new Document();
// 创建一个PdfWriter对象来写入PDF文件
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("test.pdf", FileMode.Create));
document.Open();
// 创建一个PdfContentByte对象
PdfContentByte cb = writer.DirectContent;
// 设置中文字体
BaseFont baseFont = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
// 添加中文水印
cb.BeginText();
cb.SetFontAndSize(baseFont, 30);
cb.SetColorFill(BaseColor.GRAY);
cb.ShowTextAligned(Element.ALIGN_CENTER, "这是一个中文水印", document.PageSize.Width / 2, document.PageSize.Height / 2, 45);
cb.EndText();
document.Close();
```
以上代码中,我们创建了一个名为“test.pdf”的PDF文件,并在其中添加了一个中文水印。你可以根据自己的需要,修改水印的文字内容、字体、大小、颜色和位置等属性。
Delphi使用iTextSharp 库
很抱歉,Delphi是一种编程语言,而iTextSharp是一个用于创建和处理PDF文档的C#库。虽然在Delphi中使用C#库是可行的,但是需要使用一些特殊的技巧和工具。如果您要在Delphi中创建和处理PDF文档,可以尝试使用其他专门为Delphi设计的PDF库,例如Gnostice eDocEngine或Quick PDF Library。这些库可以轻松地与Delphi集成,并提供各种PDF处理功能。