2

Flying Saucerを試して、xhtml コードから PDF を生成したかっただけです。だから私がしたことは、LibreOfficeでレイアウトを作成し、xhtmlコードを生成させ、これを(Javaの)解析ライブラリに渡してpdfを生成することでした。ただし、物事をエスケープする必要があるため、xml-code 1:1 のすべてを引き継ぐことはできませんでした。とともに " \" "。

全体を解析しようとすると、次のエラーが発生します。

[Fatal Error] :1:2: Reference is not allowed in prolog.

私はいくつかの論理的思考とグーグルでそれを追跡しようとしました. 私が理解した場合、次は私の「プロローグ」です。

    buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    buf.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN\" \"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd\">");
    buf.append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><!--This file was converted to xhtml by OpenOffice.org - see http://xml.openoffice.org/odf2xhtml for more info.--><head profile=\"http://dublincore.org/documents/dcmi-terms/\"><meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=utf-8\"/><title xml:lang=\"en-US\">- no title specified</title><meta name=\"DCTERMS.title\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.language\" content=\"en-US\" scheme=\"DCTERMS.RFC4646\"/><meta name=\"DCTERMS.source\" content=\"http://xml.openoffice.org/odf2xhtml\"/><meta name=\"DCTERMS.issued\" content=\"2012-11-20T20:59:05.11\" scheme=\"DCTERMS.W3CDTF\"/><meta name=\"DCTERMS.provenance\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.subject\" content=\",\" xml:lang=\"en-US\"/><link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" hreflang=\"en\"/><link rel=\"schema.DCTERMS\" href=\"http://purl.org/dc/terms/\" hreflang=\"en\"/><link rel=\"schema.DCTYPE\" href=\"http://purl.org/dc/dcmitype/\" hreflang=\"en\"/><link rel=\"schema.DCAM\" href=\"http://purl.org/dc/dcam/\" hreflang=\"en\"/><style type=\"text/css\">");

巨大な(そして醜い)もので申し訳ありませんが、まあ..次に私がしたことは、行ごとにコメントアウトして、間違ったものがどこにあるかを確認することでした.

これの最初の 2 行をコメントアウトすると、エラーは引き続き表示されます。

ただし、ここに3行目があります..エラーが見つかりません。すべてのヘルプをいただければ幸いです:)

        buf.append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><!--This file was converted to xhtml by OpenOffice.org - see http://xml.openoffice.org/odf2xhtml for more info.--><head profile=\"http://dublincore.org/documents/dcmi-terms/\"><meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=utf-8\"/><title xml:lang=\"en-US\">- no title specified</title><meta name=\"DCTERMS.title\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.language\" content=\"en-US\" scheme=\"DCTERMS.RFC4646\"/><meta name=\"DCTERMS.source\" content=\"http://xml.openoffice.org/odf2xhtml\"/><meta name=\"DCTERMS.issued\" content=\"2012-11-20T20:59:05.11\" scheme=\"DCTERMS.W3CDTF\"/><meta name=\"DCTERMS.provenance\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.subject\" content=\",\" xml:lang=\"en-US\"/><link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" hreflang=\"en\"/><link rel=\"schema.DCTERMS\" href=\"http://purl.org/dc/terms/\" hreflang=\"en\"/><link rel=\"schema.DCTYPE\" href=\"http://purl.org/dc/dcmitype/\" hreflang=\"en\"/><link rel=\"schema.DCAM\" href=\"http://purl.org/dc/dcam/\" hreflang=\"en\"/><style type=\"text/css\">");

前もって感謝します!

edit1: http://validator.w3.org/checkは完全に正しいと検証しました!

4

1 に答える 1

2

このブログ記事の不適切なレイアウトに混乱しているようです。サンプル コードをダウンロードすると、「<」と「>」の文字が「<」に変換されていないことがわかります。および ">" 作成者の実際のコードとデータで。

ハードコーディングされた Java 文字列に引用符を付けるには、もちろんそれらをエスケープする必要があります。ただし、この xml エスケープは必要ありません。

于 2012-11-20T23:25:14.357 に答える