データベースからのHTMLがあり、このHTMLでWordレポートを作成したいと考えています。このHTMLはユーザーからのもので、フォーマットされたテキスト(太字、イタリック...)、またはテキスト+埋め込みイメージのみがbase64形式でエンコードされている場合があります。htmlcomponentを使用して埋め込まれたイメージ(base64、data uri)でHTMLテキストをエクスポートするには?
例:
<b>My photo :</b>
<img src="data:image/png;base64,iVBORw0K... " />
我々はtextField
、markup="html"
と、それはimg
HTMLタグでは動作しないことを知っています。 Jasper Studio 6.3.1では、<hc:html/>
で試してみましたが、ハードドライブのイメージで動作しますが、埋め込みイメージでは動作しません。つまり、base64暗号化に構文エラーがあると言います。
jrxmlファイル:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="StylesReport" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" uuid="53f914b8-f951-4433-971d-6b1819430c56">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="net.sf.jasperreports.export.html.embed.image" value="true"/>
<import value="org.apache.commons.codec.binar.*"/>
<title>
<band height="742">
<textField hyperlinkType="Reference" hyperlinkTarget="Blank">
<reportElement x="0" y="30" width="515" height="30" uuid="c2015c9b-9130-4f39-a09e-c341c91d3794"/>
<textElement textAlignment="Center">
<font size="18"/>
</textElement>
<textFieldExpression><![CDATA["HTML Element Report"]]></textFieldExpression>
</textField>
<componentElement>
<reportElement x="0" y="100" width="230" height="110" backcolor="#ADD8E6" uuid="332dd551-e8cd-4cb0-a11f-7325f481017b"/>
<hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="RetainShape" horizontalAlign="Left" verticalAlign="Middle">
<hc:htmlContentExpression><![CDATA["<p style='background-color:yellow;font-family:verdana;font-size:50px;'>Hi, I am through HTML CODE using HTML Component</p><br><br><img src='data:image/gif;base64,/9j/dkjdkdkdkddk(INSERTIMAGEHEREITSTOOLONG!!!)' alt='Japser Architecture' height='1000' width='1800'>"]]></hc:htmlContentExpression>
</hc:html>
</componentElement>
</band>
</title>
</jasperReport>
はそれがジャスパーでこれを行うことは可能ですか?私たちは、データベースからHTMLを解析して、たくさんのことを行うのは嫌いです。実際にHTMLをそのままレポートに書いて欲しいと思います。
私は明日仕事でそれをテストします:)ありがとうございます – Guillaume
私たちはテストしていますが、PDFが作成されましたが、イメージは表示されません: '(Joopのプロトコルハンドラとコードを使用しました。バージョンは何ですか? – Guillaume
ハンドラから 'getInputStream()'を経由せず、 'java.protocol.handler.pkgs'システムプロパティにすでに存在しているので、ハンドラはインストールされていないようです。 – Guillaume