- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的源代码。
Document document = new Document();
String txtVehNo = "";
String fDate = "", tDate = "", remtype = "0";
String fileName = "Reminders_" + Utility.sysDate("yyyy_MM_dd") + ".pdf";
String asDate = Utility.sysDate("dd/MM/yyyy");
ArrayList<ReminderPDF> reminderPDFs = null;
UserDetails userDetails = null;
String txtMarNo = "";
String formattedDate = "";
String address = "";
Blob imageBlob = null;
byte[] imageBytes = new byte[0];
try {
txtVehNo = request.getParameter("txtVehNo2");
fDate = request.getParameter("txtDate3");
tDate = request.getParameter("txtDate4");
remtype = request.getParameter("remtype");
txtMarNo = request.getParameter("txtMarNo");
if (txtVehNo != null && txtVehNo != "") {
reminderPDFs = DataManagerBean.downloadRemindersForRequirementLetter(txtVehNo, remtype);
} else if (txtMarNo != null && txtMarNo != "") {
reminderPDFs = DataManagerBean.downloadRemindersForRequirementLetterByMarNo(txtMarNo, remtype);
} else {
reminderPDFs = DataManagerBean.downloadRemindersForRequirementLetter(fDate, tDate, remtype);
}
if (reminderPDFs.size() > 0) {
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=\"" + fileName + "\"");
PdfWriter.getInstance(document, response.getOutputStream());
//PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open();
document.setPageSize(PageSize.A4);
document.setMargins(85, 85, 85, 85);
for (int i = 0; i < reminderPDFs.size(); i++) {
String adrstr[] = reminderPDFs.get(i).address.split("\r\n");
address = reminderPDFs.get(i).address.replaceAll(adrstr[adrstr.length - 1], "");
document.newPage();
Paragraph[] paragraph = new Paragraph[8];
paragraph[0] = new Paragraph(new Phrase(reminderPDFs.get(i).mainHeader, FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph[0].setAlignment(Element.ALIGN_RIGHT);
document.add(paragraph[0]);
paragraph[1] = new Paragraph(new Phrase(reminderPDFs.get(i).subHeader, FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph[1].setAlignment(Element.ALIGN_RIGHT);
document.add(paragraph[1]);
if (reminderPDFs.get(i).print.equals("Y")) {
paragraph[2] = new Paragraph(new Phrase("(Reprint)", FontFactory.getFont(FontFactory.COURIER, 10)));
} else {
paragraph[2] = new Paragraph(new Phrase("", FontFactory.getFont(FontFactory.COURIER, 11)));
}
paragraph[2].setAlignment(Element.ALIGN_RIGHT);
document.add(paragraph[2]);
paragraph[3] = new Paragraph(new Phrase("Date : " + reminderPDFs.get(i).asDate, FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph[3].setAlignment(Element.ALIGN_RIGHT);
document.add(paragraph[3]);
paragraph[4] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph[4].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph[4]);
paragraph[5] = new Paragraph(new Phrase(address, FontFactory.getFont(FontFactory.COURIER, 11, Font.BOLD)));
paragraph[5].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph[5]);
paragraph[6] = new Paragraph(new Phrase("\n" + adrstr[adrstr.length - 1], FontFactory.getFont(FontFactory.COURIER, 11, Font.PLAIN)));
paragraph[6].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph[6]);
paragraph[7] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph[7].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph[7]);
PdfPTable table = new PdfPTable(2);
table.setWidthPercentage(100);
formattedDate = Utility.dateFormatter(reminderPDFs.get(i).dol, "yyyy-MM-dd", "dd-MM-yyyy");
table.addCell(new Phrase("Vehicle No: " + reminderPDFs.get(i).vehno, FontFactory.getFont(FontFactory.COURIER, 11)));
table.addCell(new Phrase("MAR No : " + reminderPDFs.get(i).marno, FontFactory.getFont(FontFactory.COURIER, 11)));
table.addCell(new Phrase("Policy No : " + reminderPDFs.get(i).policyno, FontFactory.getFont(FontFactory.COURIER, 11)));
table.addCell(new Phrase("Date of Loss : " + formattedDate, FontFactory.getFont(FontFactory.COURIER, 11)));
document.add(table);
Paragraph[] paragraph2 = new Paragraph[3];
paragraph2[0] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph2[0].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph2[0]);
String[] docs = reminderPDFs.get(i).content.split("\r\n");
paragraph2[1] = new Paragraph(new Phrase(docs[0], FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph2[1].setAlignment(Element.ALIGN_JUSTIFIED);
document.add(paragraph2[1]);
paragraph2[2] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph2[2].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph2[2]);
// if (reminderPDFs.get(i).docs.length() > 0) {
int k = 1;
for (int j = 1; j < docs.length; j++) {
if (!docs[j].trim().equalsIgnoreCase("")) {
document.add(new Paragraph(new Phrase(" " + k + ". " + docs[j].trim(), FontFactory.getFont(FontFactory.COURIER, 11))));
k++;
}
}
// }
Paragraph[] paragraph3 = new Paragraph[7];
paragraph3[0] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD)));
paragraph3[0].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph3[0]);
paragraph3[1] = new Paragraph(new Phrase("Thank You,", FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph3[1].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph3[1]);
paragraph3[2] = new Paragraph(new Phrase("Yours Faithfully,", FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph3[2].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph3[2]);
paragraph3[3] = new Paragraph(new Phrase("Union Assurance General Ltd", FontFactory.getFont(FontFactory.COURIER, 11, Font.BOLD)));
paragraph3[3].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph3[3]);
paragraph3[4] = new Paragraph(new Phrase(" ", FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD)));
paragraph3[4].setAlignment(Element.ALIGN_CENTER);
document.add(paragraph3[4]);
imageBlob = DataManagerBean.getESignature(reminderPDFs.get(i).createdUser);
if (imageBlob != null) {
imageBytes = imageBlob.getBytes(1, (int) imageBlob.length());
Image img = Image.getInstance(imageBytes);
float width = img.getWidth();
float hight = img.getHeight();
if (width > 200 || hight > 100) {
// img.scaleAbsoluteWidth(200);
// img.scaleAbsoluteHeight(100);
// img.scaleAbsolute(200f, 100f);
img.scaleToFit(200f, 100f);
}
width = img.getScaledWidth();
hight = img.getScaledHeight();
document.add(img);
}
userDetails = UserBean.getUserDetailsByUserId(reminderPDFs.get(i).createdUser);
paragraph3[5] = new Paragraph(new Phrase((userDetails.getuFName().concat(" ")).concat(userDetails.getuLName()), FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph3[5].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph3[5]);
paragraph3[6] = new Paragraph(new Phrase(userDetails.getDesig(), FontFactory.getFont(FontFactory.COURIER, 11)));
paragraph3[6].setAlignment(Element.ALIGN_LEFT);
document.add(paragraph3[6]);
//DataManagerBean.printStatusUpdate(reminderPDFs.get(i).rmid, "Y");
}
document.close();
response.sendRedirect("Reminders.jsp");
} else {
if (txtVehNo != null && txtVehNo != "") {
response.sendRedirect("Reminders.jsp?msgtype=3&msg=No Records for Policy/Vehicle No. - " + txtVehNo);
} else if (txtMarNo != null && txtMarNo != "") {
response.sendRedirect("Reminders.jsp?msgtype=4&msg=No Records for Mar No. - " + txtMarNo);
} else if (fDate != null && fDate != "") {
response.sendRedirect("Reminders.jsp?msgtype=5&msg=No Records between " + fDate + " to " + tDate);
}
}
} catch (DocumentException e) {
SystemMessage.getInstance().writeMessage("ERROR : DownloadRequirements.jsp - " + e.toString());
} finally {
try {
//reminderPDFs = null;
} catch (Exception ex) {
}
}
我尝试了
img.scaleAbsoluteWidth(200);
img.scaleAbsoluteHeight(100);
img.scaleAbsolute(200f, 100f);
img.scaleToFit(200f, 100f);
但不是调整图像大小。
当我调试代码时,我也得到了 width=200 和 height= 100 的值。我想这意味着它的高度和宽度发生了变化。
请让我知道这里有什么问题。
谢谢。
稍后注意
问题不在于这些方法中的任何一个。问题是图像与该尺寸不兼容。将大小设置为 100,50 后,图像大小调整完美。
再次感谢您。
最佳答案
您的指控“这一切都没有调整图像大小”是错误的,并且您使用了错误的方法来获取图像的宽度和高度。看看chapter 2 of my book :
There are different ways to change the dimensions of an image:
- The width and height parameters of
scaleToFit()
define the maximum dimensions of the image. If the width/height ratio differs from the aspect ratio of the image, either the width, or the height, will be smaller than the corresponding parameter of this method.- The width and height parameters will be respected when using
scaleAbsolute()
. The resulting image risks being stretched in the X or Y direction if you don’t choose the parameters wisely. You can also usescaleAbsoluteWidth()
andscaleAbsoluteHeight()
.scalePercent()
comes in two versions: one with two parameters, a percentage for the width and a percentage for the height; and another with only one parameter, a percentage that will be applied equally to the width and the height.It’s a common misconception that resizing images in iText also changes the quality of the image. It’s important to understand that iText takes the image as is: iText doesn’t change the number of pixels in the image.
有很多例子证明这些方法有效地改变了文档中图像的大小。
如果您继续阅读文档,您会发现代码中的另一个问题:
When creating an Image instance from a file, you won’t always know its dimensions before or even after scaling it. You can get the width and height of the image with these methods:
getWidth()
andgetHeight()
are inherited from theRectangle
object. They return the original height and width of the image.getPlainWidth()
andgetPlainHeight()
return the width and height after scaling. These are the dimensions of the image used to print it on a page.getScaledWidth()
andgetScaledHeight()
return the width and height needed to print the image. These dimensions are equal to the plain width and height, except in cases where the image is rotated.
在您的代码中,您可以获得图像的原始尺寸。您更改图像的尺寸,然后询问原始尺寸。当您询问原始尺寸而不是原始尺寸时,您不会得到不同的尺寸,这应该不会令您感到惊讶。
关于java - 如何在java中调整itext中图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40523751/
我是 Javascript 新手,所以请原谅基本代码。有什么方法可以让我使用用户输入的指定调整来打印代码? height: width: 最佳答案 为按钮
我有一个带有 A 框架的场景,我正在使用方法 getCanvas 来获取屏幕截图并将其发送到 PHP。有没有办法调整 getCanvas 图像大小?因为默认的是 4096x2048,我需要它更小。如果
安排自动“分析表”的方法是什么。当大量数据通过插入和删除发生更改时,是否可以请求自动“分析表”?参数化自动分析表过程的方法是什么,即设置何时应该触发的规则。 最佳答案 您使用的是哪个版本的 Oracl
我只是想说,我是 C 语言的新手。好吧,除此之外,我在圣诞假期的任务是编写一个以各种方式操作 PNG 图像的程序。我已经完成了大部分事情,但是在尝试编写放大图像的程序时遇到了问题。我已经尝试过了,并且
在 Postgres 中编写更快查询的有效方法是什么?请不要包括一般良好的数据库实践(例如使用索引或规范化)。我正在寻找像派生表比子查询工作得更快或使用 python 字符串函数似乎比 pgsql 字
我不知道自己做了什么,但我要么将页眉和导航向右移动,要么将页面的其余部分向左移动。使用 tw Bootstrap 。我想不通。我对它进行了调试并查看了我的 css 编辑,没有看到任何负边距(我怀疑是这
我希望能够增加默认字体大小,但只能在特定的 DIV 内。 很明显,这似乎正是 ems 所针对的那种情况。我的问题是我只想增加字体大小,而不影响使用em设置大小的其他内容,例如填充和边距。 这可能看起来
我正在我的大学上数据挖掘类(class)。我真的不明白这个问题。谁能帮我理解一下? 最佳答案 重要性权重让您了解在采样时找到特定数据点的频率。您可以使用它来增加训练数据集。例如,如果您只有两个数据点:
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我的部分程序如下所示: char *argVector[] = {"./doTasks","0", "1", "3", NULL}; int numChild = 3; int temp; char
我在调整 QWindow 大小时观察到一个奇怪的行为。当我调整窗口大小时使宽度和高度都增加或减少时,窗口不会以白色背景闪烁。但是当我增加宽度同时减小高度(或反之亦然)时,窗口会闪烁并暂时用白色填充新的
我在使用 ggplot2 创建图形时遇到问题。我正在使用带有中心堆叠的 geom_dotplot 来显示我的数据,这些数据是 4 个类别的离散值。 出于审美原因,我想自定义点的位置,这样 沿 y 轴减
在尝试让我的 Canvas/Stage 调整大小并使其正确适合父容器时遇到一些问题。我发现了其他类似的帖子,虽然答案确实帮助我获得了新的屏幕尺寸,但它仍然不想适应容器,而是直接进入屏幕的边缘(这在示例
我想将路径大小调整为 20 像素左右。 SVG 的大小应为 500 * 500,现在路径宽度为 297,高度为 180.7。现在我需要这条路径,其宽度为 277,高度为 160.7,在之前的路径中。
我有一个矩形 svg,可以围绕二维平面拖动,围绕它自己的原点旋转并调整大小。 class SVG extends React.Component { constructor(props) {
我一直在尝试调整 MLP 模型的超参数来解决回归问题,但我总是收到收敛警告。 这是我的代码 def mlp_model(X, Y): estimator=MLPRegressor() param_gr
我正在创建一个聊天应用程序,我希望 ScrollView 的内容位于输入字段下方(向上滚动时)。我已经将 ScrollView 和输入字段放在 ZStack 中。 ScrollView 上的底部填充使
我遇到 GC 来不及删除空闲对象的情况。该代码将一个大文档加载到内存中并循环处理它。如果我在此循环中停止(在 Debug模式下)或添加 GC.Collect(),内存使用量将下降到 70 MB 以下。
我正在使用 iTextSharp 和 PdfSharp 的组合来组装一个大型 PDF 文件,以便打印到 Canon Oce VarioPrint 6000 系列打印机。 PDF 正在替换后记文件。 这
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!