使用com4j打印MSWord-Document

时间:2010-09-09 11:04:44

标签: java ms-word printing access-violation com4j

我正在尝试用com4j打印出一个.doc文件。 这是我的代码:

document.printOut2000(true, false, WdPrintOutRange.wdPrintAllDocument, newDocumentPath, _, _, WdPrintOutItem.wdPrintDocumentContent, 1, _, WdPrintOutPages.wdPrintAllPages, true, true, _, false, 0, 0, 0, 0);

我从录制的Word-Macro和http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.printout(v=VS.80).aspx

中获取了值

但我得到的是以下错误:

  

Java Runtime Environment检测到意外错误:

     

EXCEPTION_ACCESS_VIOLATION(0xc0000005)at pc = 0x770f48f9,pid = 3792,tid = 5996

     

Java VM:Java HotSpot(TM)客户端VM(11.0-b16混合模式,共享windows-x86)   有问题的框架:   C [OLEAUT32.dll + 0x48f9]

知道如何解决这个问题吗?

编辑:Com4j正在打开文档,所以我认为以前方法的结果不是问题,但感谢DTH提示。

1 个答案:

答案 0 :(得分:0)

访问冲突通常与内存问题有关,例如缓冲区覆盖甚至空指针。 我建议你再次检查你的代码并控制你在打印前准备文档时使用的方法的结果,这样你就可以看出它们是否正常工作。

我不是很确定,但尝试一下,也许这是解决问题的方法。