Dies ist meine erste Erfahrung mit PDFBox-JAR-Dateien. Außerdem habe ich kürzlich mit der Arbeit an TestComplete begonnen. Kurz gesagt, all diese Dinge sind neu für mich und ich habe mich in den letzten paar Stunden an ein Thema gehalten. Ich werde versuchen, so viel wie möglich zu erklären. Würde wirklich jede Hilfe zu schätzen wissen!Speichern Sie ein im PDF-Format vorhandenes Bild im lokalen Dateisystem
Ziel:
Um
Ausgabe ein Bild in einer PDF-Datei auf dem Dateisystem zu speichern:
Wenn diese Linie objImage.write2file_2(strSavePath);
ausgeführt wird, erhalte ich die Fehler Object doesn't support this property or method
.
I am taking some help from here
-Code:
function fn_PDFImage()
{
var objPdfFile, strPdfFilePath, strSavePath, objPages, objPage, objImages, objImage, imgbuffer;
strPdfFilePath = "C:\\Users\\aabb\\Desktop\\name.pdf";
strSavePath = "C:\\Users\\aabb\\Desktop\\abc";
objPdfFile = JavaClasses.org_apache_pdfbox_pdmodel.PDDocument.load_3(strPdfFilePath);
objPages = objPdfFile.getDocumentCatalog().getAllPages();
//getting a page with index=1
objPage = objPages.get(1)
objImages = objPage.getResources().getXObjects().values().toArray();
Log.Message(objImages.length); //This is returning 14. i.e, 14 images
//getting an image with index=1
objImage = objImages.items(1);
Log.Message(typeof objImage); //returns "Object" which means it is not null
//saving the image
objImage.write2file_2(strSavePath); //<---GETTING AN ERROR HERE
}
ERROR:
Wenn Sie den Namen der Methode write2file_2
gestört werden, diesen Auszug aus bitte lesen der Link, den ich geteilt habe:
In Java hat der Konstruktor einer Klasse den Namen dieser Klasse. TestComplete ändert die Konstruktornamen in newInstance(). Wenn eine Klasse Konstruktoren überladen hat, benennt TestComplete sie wie newInstance, newInstace_2, newInstance_3 und so weiter.
Zusätzliche Information:
Ich habe Jar-Datei importiert (PDFBox-app-1.8.13.jar) und die Klassen in Testcomplete. Ich bin nicht sicher, ob ich hier eine andere JAR-Datei oder seine Klasse importieren muß:
welcher Typ ist 'objImages'? XObjects sind nicht immer Image XObjects. Und write2file ist in der Klasse PDXObjectImage. –
@TilmanHausinger Danke, dass Sie mich in die richtige Richtung weisen. Es scheint, dass immer, wenn das xobject vom Subtyp "PDXObjectForm" ist, wir diesen Fehler bekommen. Ich habe meinen Code für eine andere PDF-Datei ausgeführt, die nur 'PDPixelMap' oder' PDJpeg' enthielt und es funktionierte gut.Es war in der Lage, die Bilder im Dateisystem zu speichern. Könnten Sie das bitte als Antwort posten? Könnten Sie mir bitte auch eine Möglichkeit geben, die XObjekte des Untertyps 'PDXObjectForm' zu speichern? – Gurman