PDFsharp bearbeitet eine PDF-Datei

Umgebung - PDFsharp Library, Visual Studio 2012 und C # als Sprache.

Ich versuche zu:

Lesen Sie Test1.pdf (Breite = 17 Zoll, Höhe - 11 Zoll) mit 1 Seitefüge etwas Text hinzuSpeichern Sie es als eine andere Datei (Test2.pdf)

Ich bin in der Lage, alles Folgende zu tun. Aber wenn ich die Datei Test2.pdf öffne, wird die Größe der Seite auf Width = 11 inches, Height - 11 inches reduziert. Diese von mir verwendeten PDF-Dateien sind Produktspezifikationsblätter, die ich aus dem Internet heruntergeladen habe. Ich glaube, dass dies nur für bestimmte Dateitypen geschieht, und ich bin nicht sicher, wie ich diese Dateien unterscheiden soll.

Code unten angegeben:

//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");

Ich habe die Datei hier hochgeladenTest1.pdf

================================================ ===============================

Wie vom PDFsharp-Team vorgeschlagen, sollte der Code wie folgt lauten:

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");

Antworten auf die Frage(1)

Ihre Antwort auf die Frage