使用以下代码,我可以将页码写入 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
答案 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");