代码之家  ›  专栏  ›  技术社区  ›  nkare

itext pdfHtml:设置页边距

  •  1
  • nkare  · 技术社区  · 7 年前

        ConverterProperties props = new ConverterProperties();
        props.setBaseUri("src/main/resources/xslt");
    
        PdfDocument pdf = new PdfDocument(new PdfWriter(new FileOutputStream(dest)));
        pdf.setDefaultPageSize(new PageSize(612F, 792F));
    
        HtmlConverter.convertToPdf( html, pdf,    props);
    

    1 回复  |  直到 7 年前
        1
  •  4
  •   Uladzimir Asipchuk    7 年前

    HtmlConverter#convertToElements List<IElement>

     Document document = new Document(pdfDocument);
     List<IElement> list = HtmlConverter.convertToElements(new FileInputStream(htmlSource));
     for (IElement element : list) {
         if (element instanceof IBlockElement) {
                document.add((IBlockElement) element);
         }
     }
    

    @page {
        margin: 0;
    }
    

    <html>

    public class CustomTagWorkerFactory extends DefaultTagWorkerFactory {
         public ITagWorker getCustomTagWorker(IElementNode tag, ProcessorContext context) {
             if (TagConstants.HTML.equals(tag.name())) {
                 return new ZeroMarginHtmlTagWorker(tag, context);
             }
             return null;
         }
    }
    
    
    
    public class ZeroMarginHtmlTagWorker extends HtmlTagWorker {
         public ZeroMarginHtmlTagWorker(IElementNode element, ProcessorContext context) {
             super(element, context);
             Document doc = (Document) getElementResult();
             doc.setMargins(0, 0, 0, 0);
         }
    }
    

    Htmlconverter

    converterProperties.setTagWorkerFactory(new CustomTagWorkerFactory());
    HtmlConverter.convertToPdf(new File(htmlPath), new File(pdfPath), converterProperties);
    
    推荐文章