无法使用vba将文本从pdf复制到excel

时间:2017-07-12 14:48:56

标签: excel-vba pdf vba excel

我在pdf中有一张PID绘图(不是扫描副本)。 pdf有文本,对象,仪器线等层。我可以看到图层。我的目标是复制文本部分并按要求处理它。但是,我无法通过普通代码复制任何文本。有办法吗?目前,我正在使用一个简单的代码打开pdf,然后发送密钥 ctrl + a ctrl + c

2 个答案:

答案 0 :(得分:7)

或者,如果你坚持以当前的方式做,那么这是一个java实现:

Desktop.getDesktop().open(new File("C:\\Users\\Joris Schellekens\\Desktop\\pdfs\\30.pdf"));
Thread.sleep(5000);

Robot robot = new Robot();
robot.delay(1000);

// press CTRL+A
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(VK_A);
robot.keyRelease(VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);

// press CTRL+C
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(VK_C);
robot.keyRelease(VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);

// open empty file
Runtime.getRuntime().exec("notepad.exe");
Thread.sleep(5000);

// press CTRL+V
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(VK_V);
robot.keyRelease(VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);

出于性能原因,我需要花费多长时间打开文档,以及打开记事本需要多长时间。这样你就不会浪费宝贵的毫秒等待。

答案 1 :(得分:3)

考虑使用iText。它允许您读取pdf文档(来自文件,通用输入流,byte []),并具有启用文本提取的方法。通过一些调整,您可以轻松地提取文本的位置。