2013-07-12 69 views
1

當我通過Java代碼訪問時,圖像無法在我的PDF(iText)中正確顯示。 它部分顯示圖像正面顯示的前半部分,其餘半部分顯示圖像頂部有很多線條。 (當其他文本快速顯示時,圖像似乎下載速度非常慢)。部分顯示的iText PDF圖像

我使用iTextPdf版本5.4.0 jar文件,並通過URL訪問圖像(獲取圖像URL) 在我的java代碼中。

請讓我知道爲什麼會發生這種情況。如果您需要任何其他信息,請讓我知道,我可以提供。

在此先感謝您的幫助。

+1

應該有誰知道爲什麼會發生這種情況?你沒有應用源代碼,沒有樣本PDF,沒有什麼可走的。 – mkl

+0

我們已經使用5.4.1中的GIF解決了類似的問題:http://itextpdf.com/history/?branch=54&node=541請參閱'GifImage':修復遠程加載的圖像。存儲在遠程服務器上的GIF並不總是完全加載(當然,如果你不是在討論GIF圖像,很難猜測出了什麼問題)。 –

+0

謝謝。將嘗試。但是,當我嘗試上傳示例PDF Stackoverflow說,我需要至少10聲望發佈圖像。我怎樣才能上傳樣本PDF? – user1650179

回答

0

我也面臨同樣的問題,後來我們解決了。請找到下面的代碼,希望它對你有幫助。

HTML文件


<html> 
<body> 
<font color="green">Test</font><br/> 
<table> 
<tr><td><img src="Desert.jpg" height="300" width="300"/></td></tr> 
</table> 
</body> 
</html> 

Java文件


class PageWithRectangle extends PdfPageEventHelper 
{ 
     public void onEndPage(PdfWriter writer, Document document) 
     { 
      PdfContentByte cb = writer.getDirectContent(); 
      Rectangle pageSize = writer.getPageSize(); 
      cb.rectangle(pageSize.getLeft() + 3, pageSize.getBottom() + 3, 
      pageSize.getWidth() - 6, pageSize.getHeight() - 6); 
      cb.stroke(); 
     } 
} 
public class pdfTest { 
    private static String getUrlSource(String url) throws IOException { 
     URL webpage = new URL(url); 
     URLConnection yc = webpage.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(
       yc.getInputStream(), "UTF-8")); 
     String inputLine; 

     StringBuilder a = new StringBuilder(); 
     while ((inputLine = in.readLine()) != null) 
     { 
      a.append(inputLine); 
      System.out.println(inputLine); 
      } 
     in.close(); 
     return a.toString(); 
    } 
    public static void main(String[] args) { 
     try { 
      File baseDir = new File("."); 
      File outDir = new File(baseDir, "out"); 
      outDir.mkdirs(); 
      String k = getUrlSource("file:\\C:\\test.html"); 
      OutputStream file = new FileOutputStream(new File(outDir+"/Test.pdf")); 
      Document document = new Document(); 
      PdfWriter writer = PdfWriter.getInstance(document, file); 
      writer.setPageEvent(new PageWithRectangle()); 
      document.open(); 
      HTMLWorker htmlWorker = new HTMLWorker(document); 
      htmlWorker.parse(new StringReader(k)); 
      document.close(); 
      file.close(); 
      System.out.println("\nSuccess"); 
     } catch (Exception e) { 

      e.printStackTrace(); 
     } 
    } 

    } 

我的舊的HTML代碼(給出了錯誤的PDF,同時通過Java生成)

<html> 
<body> 
<font color="green">Test</font><br/> 
<img src="Desert.jpg" height="300" width="300"/> 
</body> 
</html> 

解決方案:給圖像標籤下表標籤

問候, 普利文

0

我也經歷了一個利用iText 5.5.5這個問題,發現影響GIF的alpha通道設置問題。刪除alpha或嘗試保存爲jpg。這對我有效。