0

画像付きのヘッダーを作成しようとしています。ヘッダーが追加されましたが、ヘッダーに画像がありません。私のアプリケーションは、Oracle Weblogic サーバー (Java EE と Hibernate を使用) にデプロイされています。

このようなイメージを作ろうとしています。getImage(seasonalFilter.getPictureFileId()).getAbsolutePath(). 画像パスは次のようなものです: /tmp/6461346546165461313_65464.jpg.

ヘッダーの画像のにテキストを追加したいことに注意してください(すべてのページに対して)。

public File convertHtmlToPdf(String JSONString, ExportQueryTypeDTO queryType, String htmlText, ExportTypeDTO type) throws VedStatException {
    try {
      File retFile = null;
      FilterDTO filter = null;
      HashMap<Object, Object> properties = new HashMap<Object, Object>(queryType.getHashMap());
      filter = JSONCoder.decodeSeasonalFilterDTO(JSONString);
      DateFormat formatter = new SimpleDateFormat("yyyy_MM_dd__HH_mm");
      //logger.debug("<<<<<<   HTML TEXT: " + htmlText + " >>>>>>>>>>>>>>>>");
      StringBuilder tmpFileName = new StringBuilder();
      tmpFileName.append(formatter.format(new Date()));
      retFile = File.createTempFile(tmpFileName.toString(), type.getSuffix());
      OutputStream out = new FileOutputStream(retFile);
      com.lowagie.text.Document document = new com.lowagie.text.Document(com.lowagie.text.PageSize.LETTER);
      com.lowagie.text.pdf.PdfWriter pdfWriter = com.lowagie.text.pdf.PdfWriter.getInstance(document, out);
      document.open();
      com.lowagie.text.html.simpleparser.HTMLWorker htmlWorker = new com.lowagie.text.html.simpleparser.HTMLWorker(document);
      String str = htmlText.replaceAll("ű", "&ucirc;").replaceAll("ő", "&otilde;").replaceAll("Ő", "&Otilde;").replaceAll("Ű", "&Ucirc;");
      htmlWorker.parse(new StringReader(str));
      if (filter instanceof SeasonalFilterDTO) {
        SeasonalFilterDTO seasonalFilter = (SeasonalFilterDTO) filter;
        if (seasonalFilter.getPictureFileId() != null) {
          logger.debug("Image absolutePath: " + getImage(seasonalFilter.getPictureFileId()).getAbsolutePath());
          Image logo = Image.getInstance(getImage(seasonalFilter.getPictureFileId()).getAbsolutePath());
          logo.setAlignment(Image.MIDDLE);
          logo.setAbsolutePosition(0, 0);
          logo.scalePercent(100);
          Chunk chunk = new Chunk(logo, 0, 0);
          HeaderFooter header = new HeaderFooter(new Phrase(chunk), true);
          header.setBorder(Rectangle.NO_BORDER);
          document.setHeader(header);
        }
      }
      document.close();

      return retFile;
    } catch (Exception e) {
      throw new VedStatException(e);
    }

  }
4

1 に答える 1

1

「すべてのチュートリアルは C:\imagelocation\dsadsa.jpg に基づいている」というあなたの虚偽の申し立ては本当に嫌いです。

私は 2 冊の本と iText に関する多くのチュートリアルの著者であり、あなたの言うことが意味をなさないという事実を知っています。私の名前「ブルーノ・ロワジー」を見てください。あなたは私の名前をあなたのコードに使っているので、あなたが完全に間違っていると言っているのを信じてください。

HTMLWorker の代わりに、XML Workerを使用する必要があります。HTMLWorker はサポートされなくなり、近い将来 iText から削除される可能性があります。

あなたもHeaderFooterクラスを使用していることがわかります。このクラスは数年前に削除されました。新しい例を見てください: http://www.itextpdf.com/themes/keyword.php?id=221

これらの例は Java で書かれています。C# バージョンが必要な場合は、SVN リポジトリで対応する C# の例を探してください。

画像に関しては、私の本の第 10 章をお読みになることをお勧めします。

最後に: http://lowagie.com/itext2をお読みください

于 2012-12-29T09:12:07.650 に答える