我的PDF框有格式问题。我的目标是以表格格式将PDF打印为报告。内容格式类似于
Name Code Description Value
我检索我的数据库结果集并有一个Java对象列表。我提取所需的信息并将它们格式化为如下字符串列表。我循环遍历对象,构造一个字符串并添加到arrayList。我的想法是创建一个长度/样式完全相同的字符串列表,以在pdf中强制执行格式。
代码参考
for(MyObject obj: dbresults){
//format as below and add to list
}
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb);
formatter.format("%-25.25s", "This is some text with more than 25 characters.");
formatter.format("%-25.25s", "Some text with less.");
formatter.format("%-25.25s", "Some other text.");
System.out.println(formatter.toString());
输出:
|This is some text with mo|Some text with less. |Some other text. |
我打印出这个列表多次屏幕:)和通过System.out或记录器的格式是完全按照我的预期,甚至块。
但是,当我发送到PDFBox打印到文件时,格式会“损坏”,并且“表格格式”不受尊重。我以x,y的形式通过100和700的考试。
代码参考
private void printMultipleLines(
PDPageContentStream contentStream,
List<String> lines,
float x,
float y) throws IOException {
if (lines.size() == 0) {
return;
}
final int numberOfLines = lines.size();
final float fontHeight = getFontHeight();
contentStream.beginText();
contentStream.appendRawCommands(fontHeight + " TL\n");
contentStream.moveTextPositionByAmount( x, y);
for (int i = 0; i < numberOfLines; i++) {
contentStream.drawString(lines.get(i));
if (i < numberOfLines - 1) {
contentStream.appendRawCommands("T*\n");
}
}
contentStream.endText();
}
要获取字体高度,可以使用以下命令:
fontHeight = font.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * fontSize;
打印示例列表:这是打印到屏幕时使用java格式化程序类后的样子,看起来都不错,但当我打印到PDFBox时,格式不被尊重
Tom Thumb 555-ddd Good 23
Tom Thumb 666-ggg Good 45
CHARLES DICKENS 777-jjj Good 32
CHARLES DICKENS 666-hhh Bad 11
W Yeats 888-hhh Ok 12
R Whitely 444-999 Terrible 44
PDF输出如下所示
Tom Thumb 555-ddd Good 23
Tom Thumb 666-ggg Good 45
CHARLES DICKENS 777-jjj Good 32
CHARLES DICKENS 666-hhh Bad 11
W Yeats 888-hhh Ok 12
R Whitely 444-999 Terrible 44
任何帮助非常感谢!
PDF中是否使用等距字体(作为信使)?它可以解释,您在控制台中获得了良好的输出,而在PDF中获得了糟糕的输出
当做
问题内容: 我正在处理生成Excel文件的JasperReport报告。由于某种原因,我的单元格格式/类型不应该如此。例如,我的单元格中有Date对象,但是当我生成Excel文件时,它将单元格类型设置为Number,或者Long类型是单元格中的文本,但是单元格的格式是number,并且当用户编辑日期单元格时(例如,日期为11/02) / 2012更改为11/03/2012),它将日期转换为数字(4
问题内容: 我包括以下声明: 在我大多数Javascript文件的开头。 JSLint从未对此发出警告。但现在是这样说: 使用“使用严格”的功能形式。 有谁知道“函数形式”是什么? 问题答案: 作为包装函数中的第一条语句包括在内,因此它仅影响该函数。这样可以防止在连接不严格的脚本时出现问题。 请参阅道格拉斯·克罗克福德(Douglas Crockford)的最新博客文章“严格模式即将来临”。 该帖
我在我的项目中使用JasperReport,在摘要带中使用表组件并使用
问题内容: 例如 这里的最终总数并不重要。但至少我需要显示每个区每月的计数。 给我的清单像..... 问题答案: 在SQL Server 2008中,您可以使用PIVOT查询轻松地完成此任务。以下示例依赖于将数据转换为以下格式(看起来已经完成了): 如果可以这样做,那么您的PIVOT查询应如下所示: 在此示例中,我使用来获取每个区的总和,然后执行UNION在底部添加总计行。结果看起来像这样: 您会
我的目标是提取和处理PDF文档可能包含的任何JavaSript代码。通过在编辑器中打开一个PDF文件,我可以看到这样的对象: 我正在尝试使用Apache PDFBox来实现这一点,但到目前为止没有运气。 此行返回一个空列表: 谁能给我指点方向吗?
我们有一个内部的遗留java库,可以用jasper spring生成报告,并将它们导出为html、pdf或xls。然而,excel文件的所有单元格都具有相同的格式(没有),我们有一个报告,其中一列填充了文本,有人担心它会被解释为带有数值的公式或其他类型的代码。同样,我们有应该出现在报告中的带有前导零的字符串。我试过设置JExcelApiExporterParameter。通过jasperExpor