v1.0.6: parser.cfm — PDFBox Loader + BufferedInputStream
This commit is contained in:
@@ -1 +1 @@
|
||||
<cfsetting showdebugoutput=no enablecfoutputonly=yes><cfoutput>OK v1.0.5</cfoutput>
|
||||
<cfsetting showdebugoutput=no enablecfoutputonly=yes><cfoutput>OK v1.0.6</cfoutput>
|
||||
|
||||
+18
-2
@@ -29,8 +29,22 @@
|
||||
<cfset fileBytes = binaryDecode(doc.original_bytes, "base64")>
|
||||
<!--- Байты → InputStream --->
|
||||
<cfset bais = createObject("java", "java.io.ByteArrayInputStream").init(fileBytes)>
|
||||
<!--- Открываем PDF --->
|
||||
<cfset pdfDoc = createObject("java", "org.apache.pdfbox.pdmodel.PDDocument").load(bais)>
|
||||
<cfset bis = createObject("java", "java.io.BufferedInputStream").init(bais)>
|
||||
|
||||
<!--- Пробуем PDFBox 3.x Loader, иначе 2.x PDDocument.load --->
|
||||
<cfset pdfDoc = 0>
|
||||
<cftry>
|
||||
<cfset pdfDoc = createObject("java", "org.apache.pdfbox.Loader").loadPDF(bis)>
|
||||
<cfcatch>
|
||||
<cftry>
|
||||
<cfset pdfDoc = createObject("java", "org.apache.pdfbox.pdmodel.PDDocument").load(bis)>
|
||||
<cfcatch>
|
||||
<cfset arrayAppend(errors, "PDFBox: cannot open PDF — " & cfcatch.message)>
|
||||
</cfcatch>
|
||||
</cftry>
|
||||
</cfcatch>
|
||||
</cftry>
|
||||
<cfif NOT isNumeric(pdfDoc)>
|
||||
<cfset stripper = createObject("java", "org.apache.pdfbox.text.PDFTextStripper")>
|
||||
|
||||
<cfset pageCount = pdfDoc.getNumberOfPages()>
|
||||
@@ -49,6 +63,8 @@
|
||||
</cfloop>
|
||||
|
||||
<cfset pdfDoc.close()>
|
||||
</cfif>
|
||||
<cfset bis.close()>
|
||||
<cfset bais.close()>
|
||||
|
||||
<cfcatch>
|
||||
|
||||
Reference in New Issue
Block a user