1

我正在使用下面的“管道”技术将 html 字符串转换为 PDF 格式。

它工作正常,除了 html 表显然默认位于页面的中心。--这是默认行为吗?如果是这样,是否有任何工作循环?

无论如何,我希望表格保持合理。

我怎样才能做到这一点?

注意:“文本对齐:左;” 例如,“margin-left: 5px”没有任何效果......也不支持老式的“align: left”属性。

感谢您的任何帮助/指导!


java代码片段:

         -
         -
         -
        document.open();

        HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);

        htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());

        // CSS
        CSSResolver cssResolver = new StyleAttrCSSResolver();
        InputStream csspathtest = Thread.currentThread().getContextClassLoader().getResourceAsStream("css/testpdf.css");            
        CssFile cssfiletest = XMLWorkerHelper.getCSS(csspathtest);
        cssResolver.addCss(cssfiletest);             

        Pipeline<?> pipeline =  new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));

        XMLWorker worker = new XMLWorker(pipeline, true);
        XMLParser p = new XMLParser(worker);
        p.parse(is); //new FileInputStream("results/demo2/walden.html"));

        // step     
        document.close();
         -
         -
         -

CSS 片段:

    div
    {
        margin-left: 5px;
        padding-left: 5px;
    }

    h2
    {
        color:blue;
        text-align: center;
        font-size: 16pt;
        margin-bottom: 20px;
    }

    h6
    {
        color:#777;
        text-align: center;
        font-size: 14pt;
        margin-bottom: 20px;    
    }

    p
    {
        color: green;
        text-align: center; 
        font-style: italic;    
        font-size: 12pt;
        margin-bottom: 20px;    
    }

    table
    {
        font-family: Arial, Helvetica, sans-serif;
        color: blue;
        border-color: #777;
        border-style: solid;
        border-width: .1px;
        border-collapse: collapse;
        text-align: left;
        vertical-align: top;
        margin-bottom: 50px;
        margin-left: 5px;
        padding-left: 5px;
    }


    th
    {
        color: #777;
        font-size: 10pt;
        background-color: lightgrey;
        padding: 5px;
        text-align: left;
        vertical-align: top;    
    }

    td
    {
        font-size: 8pt;
        color: navy;
        border-top-color: #777;
        border-top-width: .01px;       
        padding: 5px;   
        text-align: left;
        vertical-align: top;     
    }
4

0 回答 0