好吧,我一直在使用PDFBox,但我仍然一点都不了解它,但是
我已经阅读了文档,使用字体和其他一些地方,但是
我发现了如何从PDF中获取文本,并且样式,但我是在创建
它,而不是在阅读它。
我正在努力做某事
像:这样(在同一行上具有粗体和普通文本)。
我一直在使用流:
不确定这是否是帮助我所需的全部代码,因为我刚刚加入了这个
项目,但是当我加入时它才开始。
如果您能帮助我实施此代码,或者
为我提供阅读解决方案的想法或资源,我将非常感谢。
我将代码留在这里:
public void rCovernoteFooter(PDPageContentStream stream , float x, float y) throws IOException {
y = y-20;
String currentDate = df1.format(new Date());
String[] issues = constants.issued().split("/");
String issued = issues[0] + currentDate + issues[1];
y = rText(stream, x, y, 90, 0, 10, issued, null);
stream.setFont(PDType1Font.TIMES_ROMAN, 8);
y = rText(stream, x, y - 50, 117, 0, 10, constants.terms(), null);
}
public float rText(PDPageContentStream cStream, float x, float y, int col1, int col2, int spc, String data1, String data2) throws IOException {
float y1 = 0f;
float y2 = 0f;
if (data2 == null) {
y = iterate(data1, col1, x, y, spc, cStream);
} else {
y1 = iterate(data1, col1, x, y, spc, cStream);
y2 = iterate(data2, col2, x + 125, y, spc, cStream);
if (y1 >= y2) {
return y2;
} else {
return y1;
}
}
return y;
}
private float iterate(String text, int len, float x, float y, int space, PDPageContentStream stream) throws IOException {
int rowHeight = 0;
List<String> wordList = Lists.newArrayList();
wordList = wordLines(text, len);
stream.setFont(PDType1Font.TIMES_BOLD, 10);
for (String word : wordList) {
stream.beginText();
stream.moveTextPositionByAmount(x, y - rowHeight);
stream.drawString(word);
stream.endText();
if (wordList.size() != 1)
rowHeight = rowHeight + 10;
}
if (rowHeight >= space) {
y = y - (rowHeight + 10);
} else {
y = y - space;
}
return y;
}
Thanks in advice
我正在努力做某事
像:这样(在同一行上具有粗体和普通文本)。
我一直在使用流:
创建粗体(或其他样式)文本的首选方法是使用
已为该变体显式创建的字体变体。
但是,如果没有这样的字体,则可以人工模拟这些
样式:
人工斜体(实际上是倾斜的:更改文本矩阵以使输出倾斜。
在代码中:
PDRectangle rec = new PDRectangle(220, 120);
PDDocument document = null;
document = new PDDocument();
PDPage page = new PDPage(rec);
document.addPage(page);
PDPageContentStream content = new PDPageContentStream(document, page, true, true);
content.beginText();
content.moveTextPositionByAmount(7, 105);
content.setFont(PDType1Font.HELVETICA, 12);
content.drawString(“Normal text and “);
content.setFont(PDType1Font.HELVETICA_BOLD, 12);
content.drawString(“bold text”);
content.moveTextPositionByAmount(0, -25);
content.setFont(PDType1Font.HELVETICA_OBLIQUE, 12);
content.drawString(“Italic text and “);
content.setFont(PDType1Font.HELVETICA_BOLD_OBLIQUE, 12);
content.drawString(“bold italic text”);
content.endText();
content.setLineWidth(.5f);
content.beginText();
content.moveTextPositionByAmount(7, 55);
content.setFont(PDType1Font.HELVETICA, 12);
content.drawString(“Normal text and “);
content.appendRawCommands(“2 Tr\n”);
content.drawString(“artificially bold text”);
content.appendRawCommands(“0 Tr\n”);
content.moveTextPositionByAmount(0, -25);
content.appendRawCommands(“1 Tr\n”);
content.drawString(“Artificially outlined text”);
content.appendRawCommands(“0 Tr\n”);
content.setTextMatrix(1, 0, .2f, 1, 7, 5);
content.drawString(“Artificially italic text and “);
content.appendRawCommands(“2 Tr\n”);
content.drawString(“bold italic text”);
content.appendRawCommands(“0 Tr\n”);
content.endText();
content.close();
document.save(“StyledTexts.pdf”);
document.close();
在编辑文本中,用户应选择他们键入的内容是粗体、斜体还是正常。在我的情况下,当用户选择粗体时,整个编辑文本将更改为粗体,如果他再次选择斜体,则整个编辑文本将变为斜体。当用户选择粗体键入某些内容时,它应该是粗体的,当他选择斜体或正常时,他键入的单词应该是斜体或正常,而不是前一个粗体。此外,当我在编辑文本中打印输入时,即使以粗体显示,它也被正常打印。 我在底部有我的代码。 这是我将编辑文本设置为粗体或斜
我正在尝试在itext 5中使用TextField。我的字体名是“微軟正黑體英文是“Microsoft JhengHei”。我想用粗体和黑色的字体。 初始化字体(3是字体。BOLD|字体。ITALIC和BC是我的基本颜色) 我有一个文本字段变量,并将fontZh设置为setFont。 pdf结果只有字体样式、大小和颜色是正确的。但这种大胆和不自然是行不通的。
$format = new \Vtiful\Kernel\Format($fileHandle); $boldStyle = $format->bold()->toResource();
我是pdfbox和java的新手——试图复制带有徽标格式等的pdf信件。我需要在句子中使用混合字体(粗体)。目前正在使用WordUtils追加段落字符串。包装,然后开始。文本等进行分析和显示(drawString有删除线,无法选择此项-我确实找到了使用它的多种字体的信息)。由于字段值在文本和长度上会有所不同,我不能简单地搜索、拆分和更改字体以显示。无法使用标签来实现这一点(天哪,我已经尝试了我能想
使用PDFBox提取PDF时,有没有办法保留文本格式? 我有一个解析PDF文档以获取信息的程序。当PDF的新版本发布时,作者使用粗体或斜体字文本来指示新信息,并在指示省略的文本中删除或加下划线。在PDFbox中使用基本的Stripper类返回所有文本,但格式被删除,因此我无法判断文本是新的还是省略的。我目前正在使用下面的项目示例代码: 如果我简单地将PDF文本复制并粘贴到保存格式的rich tex
问题内容: 我试着做 但这并没有使它大胆。它只是看起来间隔开了。 那是错误的方式吗? 问题答案: 您将问题标记为已接受,但评论指出该问题无效。我同意它不起作用。 不是字体。它是字体的属性。如果要更改字体,可以执行以下操作: 我添加斜体只是为了向您展示代码的工作原理,因为在我看来,在Metal LAF中,默认设置是粗体。