2013-07-15 38 views
13

Môi trường - Thư viện PDFsharp, Visual Studio 2012 và C# làm ngôn ngữ.PDFsharp chỉnh sửa tệp pdf

Tôi cố gắng để:

  1. đọc Test1.pdf (Width = 17 inch, Height - 11 inch) với 1 trang
  2. thêm một số văn bản để nó
  3. tiết kiệm nó như là một tập tin khác (Test2.pdf)

Tôi có thể thực hiện tất cả những điều sau đây. Nhưng khi tôi mở tập tin Test2.pdf thì kích thước của trang sẽ giảm xuống thành Width = 11 inches, Height - 11 inches. Những tệp PDF mà tôi đang sử dụng là Trang tính kỹ thuật sản phẩm mà tôi đã tải xuống từ internet. Tôi tin rằng điều này đang xảy ra trên một số loại tệp nhất định và tôi không chắc chắn cách phân biệt các tệp này.

Mã đưa ra dưới đây:

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

Tôi đã tải lên các tập tin ở đây Test1.pdf

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

theo đề nghị của Tổ PDFSharp mã nên được như sau:

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

Cố gắng sửa đổi các trang từ PDFNewDoc.Pages (không PDFDoc.Pages) - hoặc đi trang được trả về bởi AddPage(). –

+0

Tôi đã thử chạy mã này.Its nói PdfReader không tồn tại trong ngữ cảnh hiện tại? –

Trả lời

8

Thay vì sửa đổi tài liệu, vui lòng tạo tài liệu mới và sao chép các trang từ tài liệu cũ sang tài liệu mới.

Mẫu mã có thể được tìm thấy trong bài viết này trên diễn đàn PDFSharp:
http://forum.pdfsharp.net/viewtopic.php?p=2637#p2637

+0

Nhóm PDFsharp, cảm ơn bạn đã trả lời. Tôi sẽ cố gắng và tái cơ cấu mã của tôi theo cách này và lấy lại điều này. –

+0

Nhóm PDFsharp, tôi đã cấu trúc lại mã của mình. Tôi vẫn đang đối mặt với một số vấn đề. Vui lòng xem mã được cấu trúc lại mà tôi đã đăng ở trên. –

+0

Sau khi làm theo tất cả các hướng dẫn tôi đã có thể giải quyết vấn đề của mình. Rất cám ơn đội PDFsharp. –

Các vấn đề liên quan