小编And*_*rew的帖子

Java pdfBox:填写pdf表单,将其附加到pddocument,然后重复

我有一个pdf表单,我正在尝试使用pdfBox填写表单并打印文档.我让它适用于1页打印作业,但我不得不尝试修改多个页面.基本上它是一个基本信息顶部和内容列表的表单.好吧,如果内容大于表单有空间,我必须使它成为多页文档.我最终获得了一个带有漂亮页面的文档,然后所有剩余的页面都是空白模板.我究竟做错了什么?

PDDocument finalDoc = new PDDocument();
File template = new File("path/to/template.pdf");

//Declare basic info to be put on every page
String name = "John Smith";
String phoneNum = "555-555-5555";
//Get list of contents for each page
List<List<Map<String, String>>> pageContents = methodThatReturnsMyInfo();

for (List<Map<String, String>> content : pageContents) {
    PDDocument doc = new PDDocument().load(template);
    PDDocumentCatlog docCatalog = doc.getDocumentCatalog();
    PDAcroForm acroForm = docCatalog.getAcroForm();

    acroForm.getField("name").setValue(name);
    acroForm.getField("phoneNum").setValue(phoneNum);

    for (int i=0; i<content.size(); i++) {
        acroForm.getField("qty"+i).setValue(content.get(i).get("qty"));
        acroForm.getField("desc"+i).setValue(content.get(i).get("desc"));
    }

    List<PDPage> pages = docCatalog.getAllPages();
    finalDoc.addPage(pages.get(0));
}

//Then prints/saves …
Run Code Online (Sandbox Code Playgroud)

java pdf pdf-form pdfbox

7
推荐指数
1
解决办法
1万
查看次数

Java 2d Array 还是 2d ArrayList?

我的任务是制作一个与多值数据库接口的程序。我在一个字符串中接收整个记录,其中包含值和子值的分隔符。从那里我将数据拆分为二维数组。这是其中的一个片段(注意不同的长度):

        0           1           2
   +------------------------------------+
0  | 442        |           |           |
1  | C          |           |           |
2  |            |           |           |
3  | N          |           |           |
4  | LAND       |           |           |
5  | 05412300   | 05412307  |           |
6  | BEARING    |           |           |
7  | BRAND1     | BRAND2    | BRAND3    |
8  | 12         |           |           |
   +------------------------------------+
Run Code Online (Sandbox Code Playgroud)

现在我一直使用 ArrayLists 而不是 Arrays 因为我知道这是最佳实践。现在我想知道使用 2d ArrayList 是否也有好处。我查看了一些示例,但不太明白如何在需要时获取值。如果我要这样做:

String[][] cheese = {
    {"chedder", "swiss", "pepperjack"},
    {"sliced", "cubed", "block"} …
Run Code Online (Sandbox Code Playgroud)

java arrays arraylist multidimensional-array

2
推荐指数
1
解决办法
1546
查看次数

equals()没有按预期工作

我正在尝试比较两个帖子数据字段,看看它们是否相同.如果它们不同,我将保存信息.但是我似乎无法equals()正常工作.这是一个示例:

String oldDesc1 = request.getParameter("desc1_old");
String oldDesc2 = request.getParameter("desc2_old");
String desc1 = request.getParameter("desc1");
String desc2 = request.getParameter("desc2");

if (!oldDesc1.equals(desc1) || !oldDesc2.equals(desc2)) {
    out.println("made it!!");
    part.setDescription(new String[] {desc1, desc2});
}
//added for testing
out.println("Old Desc 1: "+oldDesc1);
out.println("New Desc 1: "+desc1);
out.println("Old Desc 2: "+oldDesc2);
out.println("New Desc 2: "+desc2);
Run Code Online (Sandbox Code Playgroud)

现在我的Servlets输出如下所示:

Old Desc1: foo1
New Desc1: bar1
Old Desc2: foo2
New Desc2: bar2
Run Code Online (Sandbox Code Playgroud)

请注意它是如何错过"制作它!!"

===编辑====

我的目标是检查desc1是否更改,desc2更改,或两者都更改以写入新信息.鉴于我所看到的答案,你的陈述是说如果desc1和desc2改变然后保存信息.如果我之前没有给自己解释清楚,我很抱歉!

java string equals

0
推荐指数
1
解决办法
66
查看次数