環境 - PDFsharp ライブラリ、Visual Studio 2012、言語として C#。
私は。。をしようとしています:
- Test1.pdf (幅 = 17 インチ、高さ – 11 インチ) を 1 ページで読む
- それにいくつかのテキストを追加します
- 別ファイルとして保存(Test2.pdf)
私は次のすべてを行うことができます。しかし、ファイル Test2.pdf を開くと、ページのサイズが幅 = 11 インチ、高さ – 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");