2014-05-22 87 views
0

我有一個過程,可以將PDF頁面從現有的PDF插入到另一個PDF中,該Web應用程序在Web應用程序中使用PdfWriter從頭開始創建(新PDF創建爲發送的內容響應到瀏覽器)。ImportPage與itextsharp不能正常工作

這工作正常,直到今天,但現在我遇到了問題。

我使用itextsharp和GetImportedPage。我嘗試更新我的itextsharp dll,但仍然無法正常工作,我只能在我的pdf中找到空白頁面。

+0

請提供有問題的PDF和您的關鍵代碼。 – mkl

+0

這裏是一個項目測試與我的問題 https://onedrive.live.com/redir?resid=6EF086014F5F1E58!124&authkey=!AMHIdbYnHuznAxw&ithint=file%2c.zip – NAL

回答

1

看看下面的屏幕截圖: enter image description here

正如你所看到的,頁字典有/Rotate項與值90

現在看看你的代碼:

if ((ReceiptPageRotation == 90) || (ReceiptPageRotation == 270)) { 
    writer.DirectContent.AddTemplate(importedPage, 20f, 20f, 20f, 20f, 0, ReceiptReader.GetPageSizeWithRotation(1).Height); 
} 
else { 
    writer.DirectContent.AddTemplate(importedPage, 0, 0); 
} 

如果頁面沒有旋轉,則將導入的頁面放置在A4頁面的左下角座標處。如果您的原始頁面也是A4頁面,這將起作用。如果原始頁面的格式不同,則新頁面可能太大或太小。

但是,它的頁面輪換,與test.pdf一樣,您執行了一個非常奇怪的轉換和翻譯。 您添加頁面(當您查看生成文件的文件大小時,您會注意到這一點),但是您完全變形了原始頁面,並且將其添加到頁面可見區域之外。

請丟棄您的代碼並重新開始。您應該閱讀Chapter 6 of my book並考慮使用PdfStamper而不是PdfWriter

+0

好的,你讓我在正確的方式 – NAL