1

Java コードからアクセスすると、PDF (iText) に画像が正しく表示されません。画像の前半部分は正しく表示され、残りの半分は画像の上に多くの線が表示されます。(他のテキストが速く表示されると、画像のダウンロードが非常に遅くなるようです)。

私は iTextPdf バージョン 5.4.0 jar ファイルを使用し、Java コードで URL を介して画像にアクセスします (画像 URL を取得します)。

なぜこれが起こるのか教えてください。追加情報が必要な場合はお知らせください。提供できます。

助けてくれてありがとう。

4

2 に答える 2

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 コード (java を介して生成中に間違った pdf を与えた)

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

解決策:テーブルタグの下に画像タグを付けます

よろしく、 プラヴィーン

于 2014-03-20T13:54:54.893 に答える
0

私も iText 5.5.5 を使用してこの問題を経験しており、アルファ チャネルが設定された GIF に影響を与える問題を発見しました。アルファを削除するか、jpg として保存してみてください。これは私にとってはうまくいきました。

于 2015-04-20T14:17:09.283 に答える