2

何らかの理由で、htmlElements にスタイルを適用できないようです。テスト目的でスタイル バンドルを作成しましたが、スタイルが各 div 要素に適用されません。誰かが私が間違っていることを見つけることができますか?

try
{
    // set the file name
    string file = "C:/MyPdf.pdf";

    // create a pdf document
    Document document = new Document();

    // set the page size, set the orientation
    document.SetPageSize(PageSize.A4);

    // create a writer instance
    PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));

    // open the document
    document.Open();

    // THIS STYLE IS SET FOR TESTING PURPOSES
    StyleSheet styles = new StyleSheet();
    styles.LoadTagStyle(HtmlTags.DIV, HtmlTags.BGCOLOR, "#ff0000");

    // html pagina inlezen
    string htmlText = File.ReadAllText("C:\\afl.html");

    // html pagina parsen in een arraylist van IElements
    List<IElement> htmlElements = HTMLWorker.ParseToList(new StringReader(htmlText), styles);

    // add the IElements to the document
    for (int i = 0; i < htmlElements.Count; i++)
    {
        // cast the element
        IElement htmlElement = ((IElement)htmlElements[i]);
        document.Add(htmlElement);
    }

    // close the document
    document.Close();

    // open the pdf document
    //Process.Start(file);
} 
catch (Exception ex)
{
    var derp = ex.Message;
}
4

1 に答える 1

2

HTMLWorker は積極的に保守されていないため、代わりに XMLWorker を使用することをお勧めします。

とはいえ、おそらくテーブルベースのタグを除いて、どちらもほとんどのタグで背景色をサポートしていないことがわかります。この背後にある理由は、PDF 仕様自体が背景色をサポートしていないためです。これを実現するには、iText で複雑な注釈を使用するか、テキストの背後に図形を描画する必要があります。

現在の XMLWorker ドキュメントについては、このリンクを参照してください。サポートされているさまざまなプロパティを確認するには、左側のナビゲーションで [CSS サポート] をクリックしてください。

コード自体は正しく有効です。エラーをスローしないサポートされていないプロパティです。

于 2013-03-15T20:29:18.647 に答える