PDFBOX 读取数据报错--------------------

java.io.IOException”类型的未经处理的异常在 PDFBox-0.7.3.dll 中发生
其他信息: Error: Could not find predefined CMAP file for 'UniGB-UTF16-H'

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using org.pdfbox.pdmodel;
using org.pdfbox.util;
using System.IO;
private void button1_Click(object sender, EventArgs e)
{

FileInfo file = new FileInfo(@"c:\invoice.pdf");
FileInfo txtfile = new FileInfo(@"c:\invoice.txt");
pdf2txt(file, txtfile);

}

public void pdf2txt(FileInfo file, FileInfo txtfile)
{
PDDocument doc = PDDocument.load(file.FullName);
PDFTextStripper pdfStripper = new PDFTextStripper();
string text = pdfStripper.getText(doc);
StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, System.Text.Encoding.GetEncoding("gb2312"));
swPdfChange.Write(text);
swPdfChange.Close();
}

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
pdfbox 中读取pdf中的表格

我有很多pdf要把含有表格和图片的pdf提取出来,用pdfbox把含有图片的已经提取出来了,但是不知道怎么判断pdf中是否存在表格?

PDFBox解析PDF时,这种编码格式的解析不了unijis-ucs2-hw-h

PDFBox解析PDF时,这种编码格式的解析不了unijis-ucs2-hw-h大家有没有什么 好办法?

用pdfbox提取pdf文本,用poi提取word文本,为什么输出字符空白?

用pdfBox解析pdf,1m以下的pdf可以成功解析出来,但是1m以上的pdf都没办法解析出来,到底是为什么?jvm内存限制也不应该只能解析1M的文件啊?求大神解答~

java用pdfbox怎么按行读取pdf内容

java用pdfbox怎么按行读取pdf内容,getText方法是全部读了,怎么按行读呢,就是读一行进行判断处理一下,然后再读下一行

PDF转PNG时控制台刷一串ScratchFileBuffer not closed!!!如何解决?

图片最后能生成,但是 控制台刷了一串ScratchFileBuffer not closed! - 2019-04-13 22:03:49,204 DEBUG [Finalizer] (ScratchFileBuffer.java:516) ``` public static byte[] createPNG(byte[] by) { byte[] imgby=null; PDDocument doc =null; ByteArrayOutputStream baos = null; PDFRenderer renderer =null; try { baos = new ByteArrayOutputStream(); doc = PDDocument.load(by); renderer = new PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); for (int i = 0; i < pageCount; i++) { //BufferedImage image = renderer.renderImageWithDPI(i, 296); BufferedImage image = renderer.renderImage(i, 2.5f); ImageIO.write(image, "PNG", baos); //imgby = baos.toByteArray(); //baos.close(); image.flush(); } imgby = baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); }finally { try { baos.flush(); baos.close(); doc.close(); } catch (IOException e) { System.out.println("关闭流异常"); e.printStackTrace(); } } // buff2Image(by,"d:\\logs\\test.jpg"); System.out.println("over"+":"+imgby.length); return imgby; } ```

PDFBOX 打印PDF文件出现在异常

我使用PDFBOX(版本1.8.3)打印PDF文件时老提示:"未发送 StartDocPrinter 调用" C# 测试代码如下: PDDocument pdf = PDDocument.load(strFileName); pdf.print(); 帮各位大侠帮忙看看pdfbox 的print方法到底要怎么使用.

JAVA PDFBox 获取PDF文本缩进消失问题

我想做一个获取PDF文件的文本修改一些数据后重新生成一份新的PDF但文本格式要和前一个PDF文件一致,我成功的获取了PDF文件的文本打印出来后发现换行和空格都和PDF文件一致但缩进无法显示。有什么方法吗?

Unknown encoding for 'UniGB-UCS2-H'

如题 异常提示为:java.io.IOException: Unknown encoding for 'UniGB-UCS2-H' 代码如下,箭头位置报错: ![图片说明](https://img-ask.csdn.net/upload/201604/18/1460970595_98001.png) 在读取编码为:![图片说明](https://img-ask.csdn.net/upload/201604/18/1460970619_194254.png)的文件时可以正常使用 但是在读取编码为:![图片说明](https://img-ask.csdn.net/upload/201604/18/1460970641_202648.png)的文件时则抛出以上异常

使用pdfbox将pdf转为图片是报字体不存在的错误

``` 2020-05-25 14:12:16 [ERROR]-[org.apache.pdfbox.pdmodel.font.FileSystemFontProvider] Could not load font file: C:\Windows\FONTS\mstmc.ttf java.io.EOFException at org.apache.fontbox.ttf.TTFDataStream.readUnsignedInt(TTFDataStream.java:152) at org.apache.fontbox.ttf.TTFParser.readTableDirectory(TTFParser.java:312) at org.apache.fontbox.ttf.TTFParser.parse(TTFParser.java:139) at org.apache.fontbox.ttf.TTFParser.parse(TTFParser.java:87) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.addTrueTypeFont(FileSystemFontProvider.java:539) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.scanFonts(FileSystemFontProvider.java:255) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.<init>(FileSystemFontProvider.java:234) at org.apache.pdfbox.pdmodel.font.FontMapperImpl$DefaultFontProvider.<clinit>(FontMapperImpl.java:420) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getProvider(FontMapperImpl.java:95) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFont(FontMapperImpl.java:243) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFontBoxFont(FontMapperImpl.java:224) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getFontBoxFont(FontMapperImpl.java:209) at org.apache.pdfbox.pdmodel.font.PDType1Font.<init>(PDType1Font.java:146) at org.apache.pdfbox.pdmodel.font.PDType1Font.<clinit>(PDType1Font.java:79) at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:848) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:503) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:477) at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150) at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:246) at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:225) at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:150) at com.cbnb.oa.controller.YdqzController.uploadPdfFile(YdqzController.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:854) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:765) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) ``` 找了很久也没有解决,求助

java 字符串 UTF16转UTF-8 的乱码问题

代码片段: ``` String s="hello你好"; String s1 = new String(s.getBytes("UTF-8"), "UTF-16"); String s2 = new String(s1.getBytes("UTF-16"), "UTF-8"); System.out.println(s2); ``` 输出结果:��hello你��� 求解决方案 问题来源:rpc请求 返回的是utf-16编码的字符串 用的时候需要转成utf-8 按照上面的代码 会出现乱码问题

用pdfbox把pdf转换成图片的时候,会出现invalid characters codes

java.io.IOException: Invalid characters codes at org.apache.fontbox.ttf.CmapSubtable.processSubtype12(CmapSubtable.java:239) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.fontbox.ttf.CmapSubtable.initSubtable(CmapSubtable.java:107) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.fontbox.ttf.CmapTable.read(CmapTable.java:84) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.fontbox.ttf.TrueTypeFont.readTable(TrueTypeFont.java:377) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.fontbox.ttf.TrueTypeFont.getCmap(TrueTypeFont.java:282) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmap(TrueTypeFont.java:525) ~[fontbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.font.PDCIDFontType2.<init>(PDCIDFontType2.java:183) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.font.PDCIDFontType2.<init>(PDCIDFontType2.java:71) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.font.PDFontFactory.createDescendantFont(PDFontFactory.java:125) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.font.PDType0Font.<init>(PDType0Font.java:128) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:83) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:123) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:473) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:191) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:209) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139) ~[pdfbox-2.0.2.jar:2.0.2] at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:68) ~[pdfbox-2.0.2.jar:2.0.2] at com.cpic.jvglapp.claimserver.util.PDFUtils.produceImageFile(PDFUtils.java:290) ~[PDFUtils.class:na] at com.cpic.jvglapp.claimserver.controller.tblclaimserver.TblClaimServerController.getLPXMLTest(TblClaimServerController.java:3685) ~[TblClaimServerController.class:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_24] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_24] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_24] at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_24] at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) ~[spring-web-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) ~[spring-web-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:685) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:856) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) ~[javax.servlet_1.0.0.0_2-5.jar:2.5] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) ~[spring-webmvc-3.2.9.RELEASE.jar:3.2.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) ~[javax.servlet_1.0.0.0_2-5.jar:2.5] at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) ~[weblogic.jar:10.3.5.0] at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) ~[weblogic.jar:10.3.5.0] at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) ~[weblogic.jar:10.3.5.0] at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) ~[weblogic.jar:10.3.5.0] at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:61) ~[BUG16088411_1035.jar:10.3.5.0] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:89) ~[spring-web-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) ~[spring-web-3.2.9.RELEASE.jar:3.2.9.RELEASE] at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:61) ~[BUG16088411_1035.jar:10.3.5.0] at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180) ~[spring-orm-3.2.9.RELEASE.jar:3.2.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) ~[spring-web-3.2.9.RELEASE.jar:3.2.9.RELEASE] at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:61) ~[BUG16088411_1035.jar:10.3.5.0] at com.cpic.jvglapp.claimserver.filter.FilterListen.doFilter(FilterListen.java:99) ~[FilterListen.class:na] at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:61) ~[BUG16088411_1035.jar:10.3.5.0] at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729) ~[BUG16088411_1035.jar:10.3.5.0] at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695) ~[BUG16088411_1035.jar:10.3.5.0] at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) ~[com.bea.core.weblogic.security.identity_1.1.2.1.jar:1.1.2.1] at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) ~[com.bea.core.weblogic.security.wls_1.0.0.0_6-1-0-0.jar:6.1.0.0] at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2285) [BUG16088411_1035.jar:10.3.5.0] at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184) [BUG16088411_1035.jar:10.3.5.0] at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459) [BUG16088411_1035.jar:10.3.5.0] at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) [com.bea.core.weblogic.workmanager_1.10.0.0.jar:1.10.0.0] at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) [com.bea.core.weblogic.workmanager_1.10.0.0.jar:1.10.0.0]

idea项目不知道是什么原因报错

[[项目源码 有效7天](https://pan.baidu.com/s/1dwAC-9KbpBsnaQZ2LC0Gng "8f6v")项目源码 有效7天](https://pan.baidu.com/s/1dwAC-9KbpBsnaQZ2LC0Gng "8f6v")![图片说明](https://img-ask.csdn.net/upload/201804/11/1523415168_656823.png) [WARN] 2018-04-11 10:29:43,929 org.apache.ibatis.io.ResolverUtil - Could not examine class 'cn/appsys/pojo/AppInfo.class' due to a java.lang.NoClassDefFoundError with message: com/sun/deploy/ui/AppInfo

java PDFBox 修改 已有的 Pdf模板 字符串 写出之后 乱码 怎么解决

以下是代理 能正常替换原有pdf内容 输出之后如果是中文或者是 阿拉伯数字3就会乱码 英文则不行 。。 public static void main(String[] args) throws IOException, COSVisitorException { Map<String, String> maps = getMap(); PDDocument document = PDDocument .load(new File("G:\\demo.pdf")); List<PDPage> pages = document.getDocumentCatalog().getAllPages(); boolean begin = false; // int postion = -1; LinkedList<Integer> postions = new LinkedList<>(); // 用于存放需要clear 的 坐标 LinkedList<COSString> cosStrings = new LinkedList<>(); StringBuilder test = new StringBuilder(); for (PDPage pdPage : pages) { PDStream pdStream = pdPage.getContents(); PDFStreamParser parser = new PDFStreamParser(pdStream); parser.parse(); List tokens = parser.getTokens(); StringBuilder sb = new StringBuilder(); for (int i = 0, len = tokens.size(); i < len; i++) { Object object = tokens.get(i); if (object instanceof PDFOperator) { PDFOperator operator = (PDFOperator) object; // Tj和TJ 是PDF的运算符 if ("Tj".equals(operator.getOperation())) { COSString previous = (COSString) tokens.get(i - 1); if (previous.getString().indexOf("(") != -1) { postions.addFirst(i - 1); sb.append(previous.getString().replaceFirst("\\{", "")); continue; } else if (previous.getString().indexOf(")") != -1) { sb.append(previous.getString().replaceFirst("\\}", "")); // 刷新缓冲区 for (int position : postions) { COSString optation = (COSString) tokens .get(position); optation.reset(); } COSString optation = (COSString) tokens.get(i - 1); optation.reset(); COSString replace = (COSString) tokens.get(postions .getFirst()); String value = maps.get(sb.toString()); if (value != null) { System.out.println(value); replace.append(value.getBytes("UTF-8")); } postions.clear(); sb = new StringBuilder(); continue; } else if (!postions.isEmpty()) { postions.addLast(i - 1); } } else if ("TJ".equals(operator.getOperation())) { COSArray previous = (COSArray) tokens.get(i - 1); for (int j = 0, lenj = previous.size(); j < lenj; j++) { Object arrayElement = previous.get(j); if (arrayElement instanceof COSString) { COSString cosString = (COSString) arrayElement; String cosValue=cosString.getString(); if (cosValue.indexOf("{") != -1) { System.out.println(i+cosString.getString()); cosStrings.addFirst(cosString); }if (cosValue.indexOf("}") != -1) { System.out.println(i+cosString.getString()); cosStrings.addLast(cosString); replace(maps, cosStrings); continue ; } else if (!cosStrings.isEmpty()) { cosStrings.add(cosString); } } } } } } // 修改流 PDStream updatePdStream = new PDStream(document); // 输出流 OutputStream outputStream = updatePdStream.createOutputStream(); // 主题写流 ContentStreamWriter tokenWriter = new ContentStreamWriter( outputStream); tokenWriter.writeTokens(tokens); // 设置修改流到当前 页 pdPage.setContents(updatePdStream); } document.save("G:\\demoFuse.pdf"); } private static void replace(Map<String, String> maps, LinkedList<COSString> cosStrings) throws IOException, UnsupportedEncodingException { //解析key String key= getKey(cosStrings); System.out.println(key); //获取值 String value= maps.get(key); //填充值 if(value != null) { //字符编码都以测试过无效 包括value.getBytes("UTF-8") 之类的替换 cosStrings.get(i).append(value.getBytes()); }else{ cosStrings.getFirst().append(value.getBytes("UTF-8")); } } //清空集合 cosStrings.clear(); }

用pdfBox给pdf文档插入图片时抛出异常

用pdfBox给pdf文档插入图片时,eclipse本地run as application开发,代码抛出异常java.lang.IllegalStateException 代码如下: ********************************************** public class pdfdemo { public static void main(String args[]) { pdfdemo pdf = new pdfdemo(); //插入图片 try { pdf.AddImagetoPDF("F:\\yunsign\\pdfwithText.pdf", "F:\\yunsign\\userseal.jpg", "F:\\yunsign\\pdfwithImage.pdf"); } catch (COSVisitorException | IOException e) { e.printStackTrace(); } } //插入函数 public void AddImagetoPDF(String inputFile, String image, String outputFile) throws IOException, COSVisitorException { PDDocument doc = null; try { doc = PDDocument.load(inputFile); PDPage page = (PDPage) doc.getDocumentCatalog().getAllPages().get(0); PDXObjectImage ximage = null; ximage = new PDJpeg(doc, new FileInputStream(image)); //报错行*******************//报错行 PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true); float scale = 0.5f; contentStream.drawXObject(ximage, 20, 20, ximage.getWidth() * scale, ximage.getHeight() * scale); //contentStream.drawImage(ximage, 20, 20); contentStream.close(); doc.save(outputFile); } finally { if (doc != null) { doc.close(); } } } } *********************************************************************************** 报错截图: ![图片说明](https://img-ask.csdn.net/upload/201612/29/1483002135_876334.png) 给pdf文档插入图片的代码,我是直接在pdfbox组件中招的源代码的例子,怎么还会报错呢? 网上搜了下,java.lang.IllegalStateException异常,一般是在web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()冲突,可是我的代码压根儿没部署到web端,只是在本地run as javaApplication 希望知道的人帮我解决一下,感激不尽。

java 使用PDFBOX转图片时,遇到的坑,求支持

![写入图片时缺少字体](https://img-ask.csdn.net/upload/201710/14/1507970268_636745.jpg) ; fontbox pdfbox(版本都是1.8.2,也用过2.0.1,)都因为字体的关系报错,icepdf(能写入图片,不过中文会乱码),暂时没有好的解决办法,求大佬支招

用PDFBox如何创建横向PDpage?

使用PDFBox如何创建横向的pdf页面? 以下是创建空白文档,但是想要创建完就是横向的pdf ``` package document; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; public class Adding_Pages { public static void main(String args[]) throws IOException { //Creating PDF document object PDDocument document = new PDDocument(); for (int i=0; i<10; i++) { //Creating a blank page PDPage blankPage = new PDPage(); //Adding the blank page to the document document.addPage( blankPage ); } //Saving the document document.save("C:/PdfBox_Examples/my_doc.pdf"); System.out.println("PDF created"); //Closing the document document.close(); } } ``` 已有解决方案,如下: ``` // 创建页码 PDPage blankPage = new PDPage(); // 设置宽和高 PDRectangle rectangle = new PDRectangle(792,612); blankPage.setMediaBox(rectangle); // 添加到文档 pdDocument.addPage(blankPage); ``` 通过给定宽高来达到横向的目的

java解析pdf时读取其中的数字证书为COSName.ADBE_X509_RSA_SHA1报错

请问亲们用PDFBox解析pdf,pdf为电子发票,其中滴滴打车的电子发票里面的证书有两层,一个是中国税务的证书,一个是滴滴自己的证书。现在需要解析证书内容,普通电子发票只有一层证书时解析OK,当为滴滴打车的电子发票时读取报错,求大神指教 这里的cosStr时用PDF解析出来的信息 COSDictionary acroForm=(COSDictionary) root.getDictionaryObject(COSName.ACRO_FORM); /******用X509证书读取string信息 start******/ // 获取X509Certificate的对象 // 从命令行中读入需要验证的证书文件 CertificateFactory of = CertificateFactory.getInstance("x.509"); byte[] data=cosStr.getBytes(); ByteArrayInputStream is=new ByteArrayInputStream(data); Collection<? extends Certificate> infos=of.generateCertificates(is); Certificate ceof = infos.iterator().next(); System.out.println(ceof.getPublicKey().getEncoded() + "\t" + ceof.getEncoded()); in.close(); X509Certificate t = (X509Certificate) ceof; System.out.println(t.getSubjectDN().getName()); /******用X509证书读取string信息 end******/

pdf转png图片遇到的问题

因为有好几种方法,但大都有问题,试用pdfbox转换的时候PDF竖线都很粗 ![图片说明](https://img-ask.csdn.net/upload/201807/10/1531211655_380731.png) 因不知什么原因导致,试用了第二种方法icepdf转换,但都是根据网上的代码转换的,PDF只有框架,没有文字 ![图片说明](https://img-ask.csdn.net/upload/201807/10/1531211665_963513.png) pdf-renderer也试了,但因问题是需要合作商修改代码所以没有使用 pdfbox的代码片段: File file = new File(pdfPath); try { PDDocument doc = PDDocument.load(file); org.apache.pdfbox.rendering.PDFRenderer renderer = new org.apache.pdfbox.rendering.PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); for (int i = 0; i < pageCount; i++) { BufferedImage image = renderer.renderImageWithDPI(i, 300); // Windows native DPI File file1 = new File(path); ImageIO.write(image, "JPG", file1); } } catch (IOException e) { e.printStackTrace(); } ``` icepdf的代码片段: Document document = new Document(); document.setFile(pdfPath); float scale = 2.5f;//缩放比例 float rotation = 0f;//旋转角度 for (int i = 0; i < document.getNumberOfPages(); i++) { BufferedImage image = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale); PageText text = document.getPageText(0); System.out.println("pagetext"+text); RenderedImage rendImage = image; try { String imgName = i + ".png"; System.out.println(imgName); File file = new File(path + imgName); ImageIO.write(rendImage, "png", file); } catch (IOException e) { e.printStackTrace(); } image.flush(); } document.dispose(); ``` 目前是偏向于PDFbox来进行转换的,但希望竖线粗的问题能解决一下 有没有大佬能帮忙解决一下,万分感谢!

pdfbox2.0以上版本解析pdf(包括文字、图片、页眉、页脚、表格)

最近在做pdfbox相关的开发,但是只能简单的读取文本和图片,希望能够获取pdf的图片、 表格、页眉、页脚,包括图片及表格的坐标

如果能重来,我不会选择北漂——初见北京

一个人走的路

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

2020年大厂Java面试前复习的正确姿势(800+面试题答案解析)

前言 个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! 本篇分享的面试题内容包括:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ...

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

又出事了?网站被攻击了?高中生?

北京时间2020年3月27日9点整,如往常一样来到公司,带开电脑,正准备打开Github网站看一会源代码,再开始手头的工作。哟吼,一直打不开,一直出现如下页面: 我想很多网友也尝到了甜头,各大技术群炸开了锅,据网友反馈有攻击者正在发起大规模的中间人挟持,京东和Github等网站等网站都受到了影响。 什么是中间中间人挟持呢? 简而言之,就是攻击者在数据网络传输的过程中,截获传输过程中的数据并篡改...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

我把华为小米年报放一起,发现华为才是真·手机公司,小米确实不靠卖手机赚钱...

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI国产手机界的两大玩家,华为&amp;小米,昨天在同一天前后脚发布了2019年财报。同行冤家,发财报也碰在了同一天。那我们就对比...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

毕业5年,我熬夜整理出了这50个优质的电子书网站,吐血推荐!

大家好,我是武哥,最近经常有小伙伴问我要电子书,都什么年代了,还找不到电子书吗?如果要说原因,那就是你还没遇到武哥我(手动滑稽~)!我今天把这么多年我经常看的电子书网站整理一下给大家,基本上能解决大家的需求。不管是在校生还是已经工作了,相信肯定对你有所帮助! 1.鸠摩搜书 首先给大家推荐的网站是:鸠摩搜书 地址:https://www.jiumodiary.com/ 这个网上非常棒,上面有很多优质...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

总结了Mybatis,原来知识点也没多少嘛

看完这篇Mybatis,感觉你三天就会用了。

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问