环境 - PDFsharp 库、Visual Studio 2012 和 C# 作为语言。
我在尝试着:
- 用 1 页阅读 Test1.pdf(宽度 = 17 英寸,高度 - 11 英寸)
- 向其中添加一些文本
- 将其另存为另一个文件(Test2.pdf)
我能够做以下所有事情。但是当我打开文件 Test2.pdf 时,页面的大小会减小到 Width = 11 英寸,Height – 11 英寸。我使用的这些 PDF 文件是我从互联网上下载的产品规格表。我相信这只发生在某些类型的文件上,我不确定如何区分这些文件。
代码如下:
//File dimentions - Width = 17 inches, Height - 11 inches (Tabloid Format)
PdfDocument pdfDocument = PdfReader.Open(@"D:\Test1.pdf", PdfDocumentOpenMode.Modify);
PdfPage page = pdfDocument.Pages[0];
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);
gfx.DrawString("Hello, World!", font, XBrushes.Black, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
//When the file is saved dimentions change to - Width = 11 inches, Height - 11 inches
pdfDocument.Save(@"D:\Test2.pdf");
我已经在这里上传了文件Test1.pdf
==================================================== =================================
正如 PDFsharp 团队所建议的,代码应如下所示:
PdfDocument PDFDoc = PdfReader.Open(@"D:\Test1.pdf", PdfDocumentOpenMode.Import);
PdfDocument PDFNewDoc = new PdfDocument();
for (int Pg = 0; Pg < PDFDoc.Pages.Count; Pg++)
{
PdfPage pp = PDFNewDoc.AddPage(PDFDoc.Pages[Pg]);
XGraphics gfx = XGraphics.FromPdfPage(pp);
XFont font = new XFont("Arial", 10, XFontStyle.Regular);
gfx.DrawString("Hello, World!", font, XBrushes.Black, new XRect(0, 0, pp.Width, pp.Height), XStringFormats.BottomCenter);
}
PDFNewDoc.Save(@"D:\Test2.pdf");