3

ABCpdf07からABCpdf8に移行しようとしています。これは、さまざまな配送ラベルをPDF形式で印刷する方法で使用されます。これは通常、画像を含むファイルを除いて機能します。ドキュメントにhtmlを挿入するために使用されるコードは次のとおりです。

    public void AddHtml(string html, string frame, string nextPageFrame)
    {
        if (string.IsNullOrEmpty(nextPageFrame))
            nextPageFrame = frame;
        Document.Units = UnitType.Mm;
        Document.Rect.String = frame;

        int i = Document.AddImageHtml(html);

        while (true)
        {
            if (!Document.Chainable(i))
                break;
            Document.Page = Document.AddPage();
            Document.Rect.String = nextPageFrame;
            i = Document.AddImageToChain(i);
        }

        for (int j = 1; j <= Document.PageCount; j++)
        {
            Document.PageNumber = j;
            Document.Flatten();
        }
    }

frameとnextFrameは、ページの大きさを決定する単なる値です。HTMLビューで表示すると、HTMLはデバッグで機能します。ただし、この方法の後、ドキュメントが保存されると、画像はページに表示されません。代わりに、壊れた画像アイコンが表示されます。画像はプロジェクトフォルダ(c:\ etc ...)にローカルに保存されます。リンクが機能していることをトリプルチェックします。

画像が正しく表示されない理由に頭を悩ませることはできません。何か助けはありますか?

編集:私のxsltドキュメントはこのような画像を見つけます

    <xsl:template match="//TheWrapper">
    ...
    <img class="someClass">
       <xsl:attribute name="src">
          <xsl:value-of select ='LogoLocation' />
       </xsl:attribute>
    </img>
    ...
    </xsl:template>
4

2 に答える 2

1

ABCpdfのバージョン8には、画像を渡す別の方法があるようです。これは、IE(処理中にバックグラウンドでロードされる)に依存したくないためです。ここでの詳細についてはあまり詳しくありません。

とにかく-Chromeでロゴファイルパスを開くと、「file:///」が自動的に追加されたので、コードでそれを試してみましたが、うまくいきました!ロゴのファイルパスの前に「file:///」を付けるだけで、すべて正常に機能します。

于 2012-09-24T11:01:05.010 に答える
0

問題は、httpヘッダー応答がabcpdfの形式が正しくないことです。画像には、適切なヘッダーhttp応答を使用してください。良い例を挙げて例を挙げ、firefox debugguerでhttpヘッダーを調べて、このhttpヘッダーの応答を画像に再現します。

または、コードサーバーで手動画像を送信する場合は、画像のhttpストリーム応答の厳密な方法が適切かどうかを確認してください。

于 2012-09-14T11:24:22.950 に答える