gpt4 book ai didi

java - HTML 到 PDF 使用 iText : How can produce a checkbox

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:53 26 4
gpt4 key购买 nike

我有一个简单的 HTML 页面,iText 能够从中生成 PDF。很好,但是复选框被忽略了。我该怎么办?

import java.io.FileOutputStream;
import java.io.StringReader;

import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.html.simpleparser.HTMLWorker;
import com.itextpdf.text.pdf.PdfWriter;

public class HtmlToPDF {

public static void main(String ... args ) {
try {
Document document = new Document(PageSize.LETTER);
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("c://temp//testpdf.pdf"));
document.open();
String str = "<HTML><HEAD></HEAD><BODY><H1>Testing</H1><FORM>" +
"check : <INPUT TYPE='checkbox' CHECKED/><br/>" +
"</FORM></BODY></HTML>";

htmlWorker.parse(new StringReader(str));
document.close();
System.out.println("Done.");
}
catch (Exception e) {
e.printStackTrace();
}
}
}

我使用 YAHP ( http://www.allcolor.org/YaHPConverter/ ) 得到了它。

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


// http://www.allcolor.org/YaHPConverter/
import org.allcolor.yahp.converter.CYaHPConverter;
import org.allcolor.yahp.converter.IHtmlToPdfTransformer;

public class HtmlToPdf_yahp {

public static void main(String ... args ) throws Exception {
htmlToPdfFile();
}

public static void htmlToPdfFile() throws Exception {
CYaHPConverter converter = new CYaHPConverter();
File fout = new File("c:/temp/x.pdf");
FileOutputStream out = new FileOutputStream(fout);
Map properties = new HashMap();
List headerFooterList = new ArrayList();

String str = "<HTML><HEAD></HEAD><BODY><H1>Testing</H1><FORM>" +
"check : <INPUT TYPE='checkbox' checked=checked/><br/>" +
"</FORM></BODY></HTML>";

properties.put(IHtmlToPdfTransformer.PDF_RENDERER_CLASS,
IHtmlToPdfTransformer.FLYINGSAUCER_PDF_RENDERER);
//properties.put(IHtmlToPdfTransformer.FOP_TTF_FONT_PATH, fontPath);
converter.convertToPdf(str,
IHtmlToPdfTransformer.A4P, headerFooterList, "file://c:/temp/", out,
properties);
out.flush();
out.close();
}
}

最佳答案

您要生成 HTML 吗?

如果是这样,那么您可以使用 Unicode“投票框”字符,即 ,而不是使用 HTML 复选框。它只是一个框,您无法通过电子方式勾选或取消勾选;但如果 PDF 用于打印,那么人们当然可以使用钢笔或铅笔在上面打勾。

例如:

     String str = "<HTML><HEAD></HEAD><BODY><H1>Testing</H1><FORM>" + 
"check : &#x2610;<br/>" +
"</FORM></BODY></HTML>";

请注意,这仅在您在 PDF 中使用 Unicode 字体时有效;我认为 iText 不会使用 Unicode 字体,除非你告诉它。

关于java - HTML 到 PDF 使用 iText : How can produce a checkbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6133581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com