PDF Sharp - 无法编辑某些pdf

时间:2015-02-28 04:07:41

标签: c# pdfsharp

使用以下代码,我可以将页码写入 SOME 文件。

  var outputDocument = new PdfDocument();
  var currentPageNumber = 1;

  var inputDocument = PdfReader.Open(@"C:\SamplePdfs\display.pdf", PdfDocumentOpenMode.Import);

  for (var i = 0; i < inputDocument.PageCount; i++)
  {
       PdfPage page = outputDocument.AddPage(inputDocument.Pages[i]);
       XGraphics gfx = XGraphics.FromPdfPage(page);
       XFont font = new XFont("Arial", 100, XFontStyle.Regular);
       gfx.DrawString(Convert.ToString(currentPageNumber), font, XBrushes.Black, new XRect(0, 0, page.Width - 100, page.Height - 100), XStringFormats.BottomCenter);
       currentPageNumber++;
  }

  outputDocument.Save(@"c:\test\sample1.pdf");

为什么我无法使用该代码写入某些pdf文件?

更新:我在网上找到了一个展示相同问题的pdf。 PDF

更新#2:不同的主持人: Dropbox

https://www.dropbox.com/s/0e0exs0lhytx3xl/ThirdConversion.pdf?dl=0

2 个答案:

答案 0 :(得分:0)

NewDisplay.pdf文件在MediaBox中使用负值:MediaBox[-89.5 -702.5 702.5 -90.5]

大多数PDF文件都使用正值。当您使用x和y的负值时,可能会显示您的页码。

答案 1 :(得分:-1)

我认为你的程序应该是这样的......

PdfDocument pdf = new PdfDocument();
PdfPage page = pdf.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 100, XFontStyle.Regular);
gfx.DrawString(""This is my first PDF document"", font, XBrushes.Black,
new XRect(0, 0, page.Width - 100, page.Height - 100),
XStringFormats.BottomCenter);
pdf.Save("newFileName.pdf");