1为myDocDesigner创建和初始化对象
以下是带有结构器的myDocDesignerclass的定义:
public myDocDesigner(customDocFormat doc, InputStream imageStream, int page) throws IOException
{
docImageStream(imageStream);
calculatePageSize(doc, page);
}2来自generateOutputDoc()的myFileManager类,如下所示:
jMyDocDesigner = createObject("java"
,"myPackage.visible.myDocDesigner")
.init(jMyLocalDoc ,myImageFileStream,1);3.属性定义为:
/* load document : `customDocFormat` isn't only a format it also returns the document object of the type `customDocFormat` to be used in #1 & #2 above */
//document & image file paths
lStrInputFilePath = "#expandPath('sampledocs')#\mySampleDoc.pdf";
lStrImageFilePath = "#expandPath('sampledocs')#\myPlacementLogo.png";
//java FileInputStream object for the PDF file
lOsPDFInput = CreateObject("java","java.io.FileInputStream")
.init(CreateObject("java","java.io.File").init(lStrInputPDFfile));
jMyLocalDoc = createObject("java","myPackage.docModel.customDocFormat");
jMyLocalDoc.load(lOsPDFInput);
//FileInputStream Object for image
lSignImage = CreateObject("java","java.io.FileOutputStream")
.init(CreateObject("java","java.io.File").init(lStrImageFilePath));4问题:
为了让事情变得简单明了:我已经尽了我对Java知识的最大努力,尝试了所有可能的选择。但我做不到这件事。这部分代码是基于某些内部需求和约定来操作文档的项目的一部分。每件事情都工作得很完美.我逐步调试了整个代码,但这一部分阻碍了一切.我尝试了4-5个变体来将FileInputStream对象转换为InputStream,但是每次我得到这个错误,这是可以理解的,因为它不接受我向它抛出的参数:

我更新了我的问题,因为我发现问题的原因在于FileInputStream对象本身,正如利在他的回答中指出的那样,我初始化了这个对象,结果我没有走正确的道路,多亏了他.我能够继续我的代码,下面是我的代码中唯一阻止项目完成的bug :(:

下面是我所处理的PDDocument & PDDocumentInformation类的Java文件,其中我得到了不正确的no。文档加载后的页面:到这里去。
发布于 2015-04-27 09:20:43
找到了,工作得很好!myDocDesigner的参数签名接受输入和输出文档的FileInputStream和OutputStream对象。整个问题是我缺乏java知识,我承认,但是多亏了这个小组,经过一些研究和测试,我做了一些改变,神奇地起了作用。很高兴因为我现在可以继续前进了。谢谢利的帮助。
fis = createObject("java", "java.io.FileInputStream");
lOsPDFInput = createObject("java", "java.io.BufferedInputStream").init(fis.init(arguments.lStrInputPDFfile));
fos = createObject("java", "java.io.FileOutputStream");
lOsPDFOutput = createObject("java", "java.io.BufferedOutputStream").init(fos.init(arguments.lStrOutputPDFfile));
fimgs = createObject("java", "java.io.FileInputStream");
lSignImage = createObject("java", "java.io.BufferedInputStream").init(fimgs.init(arguments.lStrSignImageFile));
fkeys = createObject("java", "java.io.FileInputStream");
lKeyStoreFileStream = createObject("java", "java.io.BufferedInputStream").init(fkeys.init(arguments.lStrKeyStoreFilePath));发布于 2015-03-18 07:18:58
你可以试试这个:
lOsPDFInputStream = CreateObject("java","java.io.InputStream");
lOsPDFInputStream = lOsPDFInput;现在尝试再次传递lOsPDFInput,因为现在它是InputStream的一个对象。
您还可以尝试将FileInputStream转换为InputStream。
public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect()
throws IOException {
File initialFile = new File("src/main/resources/sample.txt");
InputStream targetStream = new FileInputStream(initialFile);
}参考文献:http://www.baeldung.com/convert-file-to-input-stream
如果对你有用的话请告诉我。
https://stackoverflow.com/questions/29115943
复制相似问题