2013-01-11 206 views
0

将html页面转换为pdf。当我将页面转换为pdf时,html页面内容不适合A4页面。我希望将整个html页面转换为pdf,而不会丢失任何内容。缩小HTML页面并转换为A4尺寸pdf

我已经具有转换HTML到PDF

  String tempOutFileNameXHTML = "/Users/Common/index" + i + DOT + "xhtml"; 
      String tempOutFileNamePDF = "/Users/Common/index" + i + DOT + PDF; 
      File targetFile = targetFiles.get(i); // gets all the specified html files 
      CleanerProperties props = new CleanerProperties(); 
      props.setTranslateSpecialEntities(true); 
      props.setTransResCharsToNCR(true); 
      props.setOmitComments(true); 

      //checking of starting and ending tags are in proper 
      HtmlCleaner htmlCleaner = new HtmlCleaner(props); 
      TagNode tagNode = htmlCleaner.clean(targetFile); 
      PrettyXmlSerializer prettyXmlSerializer = new PrettyXmlSerializer(props); 

      prettyXmlSerializer.writeToFile(tagNode, tempOutFileNameXHTML, "utf-8"); 

      File xhtmlpath = new File(tempOutFileNameXHTML); 
      File pdfPath = new File(tempOutFileNamePDF); 
      com.itextpdf.text.Document pdfDocument = null; 
      PdfWriter pdfWriter = null; 
      pdfDocument = new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4); // TODO handle this 

      pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(pdfPath)); 
      pdfDocument.open(); 
      Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 25, Font.BOLD); 
      pdfDocument.add(new Paragraph("Target : " + targetFile.getParentFile().getName(), catFont)); 

      XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, (com.itextpdf.text.Document) pdfDocument, 
        new FileInputStream(xhtmlpath), null); 

      pdfDocument.close(); 

这里的问题是,当html页面宽度过长,不适合在A4大小的PDF格式的代码。无论如何收缩或使其成为没有任何内容丢失的pdf。 ? 我该怎么做? HTML页面可以缩小并转换为PDF?任何想法如何做到这一点?

+0

看看这篇文章。可能帮助http://stackoverflow.com/questions/14089883/how-to-create-several-pages-with-dompdf/14089936#14089936 –

回答

0

的iText可能支持CSS样式。您可以使用样式表格来设置HTML页面的格式,使其适合一个页面。一些关于样式表和iText的信息: http://itextpdf.com/examples/iia.php?id=56

如上所述,您也可以尝试飞碟这是另一种HTML到PDF转换器。至少在飞碟上你可以提供真实的样式表,CSS支持非常好。