在java中使用pdfbox将文本叠加到先前创建的pdf文档上

我已经创建了几个PDF文档。 我试图做的是使用PDFBox。 我需要将文本放在这些创建文档的几个位置,但我不想修改这些区域内的文本。 例如,可能有以下部分 – 名称: ______________________________ 我将文本放入该区域,但我需要下划线保持相同的长度。 我相信最好的解决方案是创建一个位于区域上方的文本框或类似文本,以使该行保持相同的长度。 换句话说,我不想编辑内联文本,因此它将保持相同的长度。 我没有这方面的代码,因为我只是想了解pdfbox包。 我一直在网上寻找示例,但大多数只是展示如何创建文档而不是如何更新以前的文档。 我该怎么做呢?

URLClassLoader.addURL(URL)是否遵守META-INF / MANIFEST.MF

如果我有一个jar,其中包含MANIFEST.MF的Class-Path条目。 如果我将jar添加到URLClassLoader ,那么Class-Path条目中的jar也会添加到classloader吗? 我是否需要内省我想要添加到classloader的jar来检测它并为它们中的每一个调用addURL (递归)?

如何处理Java的BigDecimal中的舍入错误

我正在使用在java应用程序中实现脚本引擎的开源项目(axil),并且在尝试利用BigDecimal的舍入时遇到了一个主要障碍。 似乎BigDecimal正在将我的输入转换为科学记数法,然后将我传入的精度应用于数字的SN表示系数,而不是其非SN表示。 例如: new BigDecimal(“-232454.5324”).round(new MathContext(2, RoundingMode.HALF_UP)).toString() 产生-2.3E+5的结果。 这给我带来了两个问题。 首先,我期待-232454.5 ( -2.324545E+5 )的结果,所以得到-230000会抛出任何涉及结果的数学运算。 第二,我没有想到,也无法找到解决办法,在SN中得到结果(虽然我希望有一种格式化方法,我还没有偶然发现)。 现在由于项目的性质,我们很少期望将数量的大小/类型传递给round()方法,因此任何解决方案都需要高度模块化。 有没有人有什么建议? 如果它有用,这里是项目中此错误的谷歌代码问题报告的链接。 这是项目主页的链接。 很感谢任何forms的帮助。

设置不可见后无法访问Jtable列数据

将JTable列设置为不可见后,我无法获得对该组件的引用。 Component cellEditor; String name; String value; // loop row then column for(int j=0 ; j<tolCol ; j++){ /* get cell name in JTable */ System.out.println(j + " " + ((JTable)comp).getModel().getValueAt(0, j)); tce = ((JTable)comp).getCellEditor(0, j); // <– ArrayIndexOutOfBounds } 当我使用System.out.println(j +“”+((JTable)comp).getModel()。getValueAt(0,j)); 我设法打印出所有的价值。 我还需要做些什么来获得组件的引用吗?

NoClassDefFoundError:使用PowerMock-OSGi的org / hamcrest / Matchers

当我运行我的测试作为OSGi PlugIn测试时,我得到org.hamcrest.Matchers的NoClassDefFoundError,但是当我将其作为普通JUnit运行时测试everthing按预期工作。 我正在使用OSMi版本的PowerMock,并在我的启动配置中包含所有必要的依赖项。 我做错了什么? 由于某些原因,似乎Testrunner没有看到这个class级。 编辑:我创建了一个简化的示例项目,并发现问题只出现在我的类声明中使用@PrepareForTest(XXX.class)时。 java.lang.NoClassDefFoundError: org/hamcrest/Matchers at eu.gemtec.commons.util.assertion.Assert.assertParamNotNull(Assert.java:107) at eu.gemtec.eagle.device.aastra.omaxi.core.system.model.impl.MessageHandleFactory.(MessageHandleFactory.java:72) at eu.gemtec.eagle.device.aastra.omaxi.core.system.model.impl.TestMessageHandleFactory.setUp(TestMessageHandleFactory.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:132) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:95) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:294) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:127) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.access$100(PowerMockJUnit47RunnerDelegateImpl.java:59) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$LastRuleTestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:148) at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:91) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:282) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:207) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:146) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:120) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45) […]

DeferredContentProvider的替代方法,用于支持使用SWT.VIRTUAL在表中进行过滤

在我的项目中,我有一个TableViewer ,需要显示超过100,000个项目并过滤它们。 如果没有SWT.VIRTUAL ,表格需要多秒才能显示。 但是,在尝试使用SWT.VIRTUAL时,我SWT.VIRTUAL以下问题: 正如人们通常所做的那样实现ILazyContentProvider是有问题的,因为它与TableViewer通常的过滤机制不兼容,因此我必须自己实现整个过滤机制。 在我的搜索中,我找到了DeferredContentProvider来解决这个问题。 但DeferredContentProvider仍然有许多已知的错误 ,其中一个( 146799 )肯定已经影响了我,所以我不能使用它。 我现在的问题是:我应该看看有什么好的选择,还是我自己必须以自己处理过滤的方式实现ILazyContentProvider ? 如果是这样,我有什么机会不遇到DeferredContentProvider的实现者遇到的关于刷新问题的相同问题? 有没有人有类似的经历?

如何获取generics方法参数的类型参数类?

如何获取传递给方法的参数的类型参数? 比如我有 List list = new ArrayList(); public class Datastore { public void insert(List tList) { // when I pass the previous list to this method I want to get Person.class ; } }

如何使volatile count操作成为线程安全的

我一直在经历JCIP,作者在那里说.. 线程限制的一个特例适用于volatile变量。 只要确保volatile变量仅从单个线程写入,对共享的volatile变量执行读 – 修改 – 写操作是安全的。 例如,count ++被认为是一个复合操作(读取值,添加一个值,并更新值)并将count指定为volatile不会使此操作成为primefaces,因此这里不保证线程安全! 我对吗 ?? 但是这里作者说我们可以修复它,如果我们确保volatile变量只是从一个线程写的。 我没理解这一点。 请提供说明。

如何在数据库中保存时区信息?

我正在使用GWT / Hibernate。 我有一个使用GWT创建的表单。 它有一个日期字段,用户可以在其中选择日期,一个下拉列表显示所有时区。 现在用户从下拉列表中选择日期和时区。 点击保存按钮我需要保存日期和时区信息。 此外,如果在GMT中配置服务器,如果用户选择了任何其他时区,则应将其保存为用户选择的时区信息。 当我尝试查询相同时,它应该返回用户选择的时区的日期。 请告诉我实施它的最佳方法是什么? 我应该单独在db中有日期和时区列吗? 我需要以哪种格式保存时区信息? 请帮帮我。 谢谢!

ReferenceTable溢出(最大= 1024)

在我的android应用程序中,我经常调用一个返回一些数据的本机函数。 经过多次通话后,我收到了一个显示以下跟踪的崩溃。 W/dalvikvm(14588): ReferenceTable overflow (max=1024) W/dalvikvm(14588): Last 10 entries in JNI pinned array reference table: W/dalvikvm(14588): 1014: 0x41f3b7a8 cls=[B (38036 bytes) W/dalvikvm(14588): 1015: 0x411c6f88 cls=[B (1620 bytes) W/dalvikvm(14588): 1016: 0x405b2f48 cls=[B (1052 bytes) W/dalvikvm(14588): 1017: 0x411c4be0 cls=[B (92 bytes) W/dalvikvm(14588): 1018: 0x41f44c40 cls=[B (38036 bytes) W/dalvikvm(14588): 1019: 0x411c5a78 cls=[B (60 bytes) W/dalvikvm(14588): 1020: 0x413ac4e8 […]