2013-07-15 24 views
13

Środowisko - biblioteka PDFsharp, Visual Studio 2012 i C# jako język.PDFsharp edytuj plik PDF

Próbuję:

  1. odczytu Test1.pdf (szerokość = 17 cali, wysokość - 11 cali) z 1 stronie
  2. dodać jakiś tekst do niego
  3. zapisać go jako innego pliku (Test2.pdf)

Jestem w stanie wykonać wszystkie poniższe czynności. Ale kiedy otwieram plik Test2.pdf, rozmiar strony zmniejsza się do szerokości = 11 cali, wysokość - 11 cali. Te pliki PDF, których używam, to Arkusze specyfikacji produktów pobrane z Internetu. Wierzę, że dzieje się tak tylko na niektórych typach plików i nie jestem pewien, jak rozróżnić te pliki.

kod podany poniżej:

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

Przesłałem plik tutaj Test1.pdf

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

sugerowane przez PDFsharp zespołu kod powinien wyglądać następująco:

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

Spróbuj zmodyfikować stronę z PDFNewDoc.Pages (nie PDFDoc.Pages) - lub wziąć stronę zwrócony przez addPage(). –

+0

Próbowałem uruchomić ten kod. Mówi, że PdfReader nie istnieje w bieżącym kontekście? –

Odpowiedz

8

Zamiast modyfikować dokument, utwórz nowy dokument i skopiuj strony ze starego dokumentu do nowego dokumentu.

Przykładowy kod można znaleźć w tym poście na forum PDFsharp:
http://forum.pdfsharp.net/viewtopic.php?p=2637#p2637

+0

Zespół PDFsharp, dzięki za odpowiedź. Spróbuję w ten sposób zrestrukturyzować swój kod i wrócić do tego. –

+0

Zespół PDFsharp, przebudowałem swój kod. Nadal napotykam na pewne problemy. Proszę spojrzeć na zrestrukturyzowany kod, który napisałem powyżej. –

+0

Po wykonaniu wszystkich instrukcji udało mi się rozwiązać moje problemy. Wielkie dzięki dla zespołu PDFsharp. –