1

XMLWorker で非常に単純な CSS を使用して、HTML を PDF にレンダリングします。CSSは次のとおりです。

body { font-family: "Times New Roman;" } 

p.testoJustify { 
text-align:justify; 
text-justify:inter-word; 
} 

問題は「.testoJustify」セレクタにあります。このセレクターを使用すると、結果の PDF にはテキストが両端揃えされませんが、セレクターがないため、p {... } のみで正常に動作します!

Java コードは次のとおりです。

FontFactory.registerDirectories(); 

XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(); 
CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); 
HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); 
htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); 

CSSResolver cssResolver =XMLWorkerHelper.getInstance().getDefaultCssResolver(true); 
cssResolver.addCss(Context.pdfCss, true); 
Pipeline<?> pipeline = new CssResolverPipeline(cssResolver, 
                                                new HtmlPipeline(htmlContext, 
                                                  new PdfWriterPipeline(pdfDocument, pdfWriter))); 

これは、CSS が修正されて HTML ページに適用されていることを示す JSFiddle へのリンクですが、XMLWorker には適用されていません。

http://jsfiddle.net/6vrMP/

4

1 に答える 1

1

私は XmlWorker のソース コードを掘り下げてきましたが、複雑なセレクターはサポートされていません

技術的には 2 つのアプローチがあります。

それ以外の

     <table class="a">
       <tr>
          <td>
          <td>
       </tr>
     </table>

あなたは書けないから

.a td { smth }

HTML が大きすぎない場合は、2 番目の方法を使用します。

于 2014-01-22T09:48:26.803 に答える