繁体   English   中英

itext将我的字母转换为html字母代码

[英]itext transfers my letters to html letter codes

我有一个pdf文件,用户可以在其中从自己的桌面复制文本,并在提交时生成pdf文件。 我使用itext-2.1.7 但是由于我们使用了一些非标准字母,所以它们被转换为html代码字符代码。 这是我的文档servlet,我使用“ application / pdf; charset = UTF-8”。

BaseFont bf;
try {
  HttpSession session = request.getSession(true);
  if (session.getAttribute("taxnumber") == null || session.getAttribute("email") == null || session.getAttribute("password") == null) {
    request.setAttribute("message", "The user does not exist in our database");
    request.getRequestDispatcher("/Login.jsp").forward(request, response);
  }
  String title = request.getParameter("doctitle");
  String date = request.getParameter("docdate");
  String text = request.getParameter("brokerstext");
  String[] newdate = date.split("/");
  Document document = new Document(PageSize.A4);
  PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
  document.open();

  document.add(new Paragraph(newdate[1] + "/" + newdate[0] + "/" + newdate[2]));
  document.add(new Paragraph(title));
  document.add(new Paragraph(text));
  document.add(Chunk.NEWLINE);
  document.add(Chunk.NEWLINE);
  document.add(Chunk.NEWLINE);
  document.add(new LineSeparator());
  document.add(Chunk.NEWLINE);
  document.add(new LineSeparator());
  document.add(Chunk.NEWLINE);
  document.add(Chunk.NEWLINE);
  document.add(new Paragraph("Brokers's digital signature Clients's digital signature"));

  PdfFormField field1 = PdfFormField.createSignature(writer);
  field1.setWidget(new Rectangle(72, 100, 172, 200), PdfAnnotation.HIGHLIGHT_INVERT);
  field1.setFieldName("mySig1");
  field1.setTitle("Klijent1");
  field1.setFlags(PdfAnnotation.FLAGS_PRINT);
  field1.setPage();
  PdfAppearance tp1 = PdfAppearance.createAppearance(writer, 72, 48);
  tp1.rectangle(0.5f, 0.5f, 71.5f, 47.5f);
  tp1.stroke();
  field1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp1);
  writer.addAnnotation(field1);

  PdfFormField field2 = PdfFormField.createSignature(writer);
  field2.setWidget(new Rectangle(372, 100, 472, 200), PdfAnnotation.HIGHLIGHT_INVERT);
  field2.setFieldName("mySig2");
  field2.setTitle("Klijent2");
  field2.setFlags(PdfAnnotation.FLAGS_PRINT);
  field2.setPage();
  PdfAppearance tp2 = PdfAppearance.createAppearance(writer, 72, 48);
  tp2.rectangle(0.5f, 0.5f, 71.5f, 47.5f);
  tp2.stroke();
  field2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp2);
  writer.addAnnotation(field2);

  document.close();

我用过

public static final String FONT = "C:/Windows/Fonts/segoeui.ttf";   
bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
document.add(new Paragraph(title,new Font(bf, 12)));

如果购买了其他字体,但是它没有帮助将看起来像“ o deponovanimnovčanim”的文本转移到“ o deponovanim nov&#....”,stackoverflow会显示相同的内容。 所以在pdf中,我得到了我的信件的html代码。 如何正确显示它。

请将titletext的值作为纯文本写入日志文件。 它们包含相同的HTML代码的可能性为99.9%。 如果是这样,您就不会遇到与iText相关的问题。 相反,您遇到了Servlet问题;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM