v1.0.79: .doc → XWPF первым (после конвертации), HWPF только fallback
This commit is contained in:
+24
-6
@@ -318,9 +318,18 @@
|
|||||||
<cfset parsed = parseDOCX(entryBytes)>
|
<cfset parsed = parseDOCX(entryBytes)>
|
||||||
</cfif>
|
</cfif>
|
||||||
<cfelseif zext EQ "doc">
|
<cfelseif zext EQ "doc">
|
||||||
<cfset parsed = parseDOC_POI(entryBytes)>
|
<!--- После конвертации это уже docx — пробуем XWPF первым --->
|
||||||
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
|
<cftry>
|
||||||
<cfset parsed = parseDOC(entryBytes)>
|
<cfset parsed = parseDOCX(entryBytes)>
|
||||||
|
<cfcatch>
|
||||||
|
<cfset parsed = {elements: [], errors: ["XWPF fallback: " & cfcatch.message]}>
|
||||||
|
</cfcatch>
|
||||||
|
</cftry>
|
||||||
|
<cfif arrayLen(parsed.elements) EQ 0>
|
||||||
|
<cfset parsed = parseDOC_POI(entryBytes)>
|
||||||
|
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
|
||||||
|
<cfset parsed = parseDOC(entryBytes)>
|
||||||
|
</cfif>
|
||||||
</cfif>
|
</cfif>
|
||||||
<cfelse>
|
<cfelse>
|
||||||
<cfset arrayAppend(parsed.errors, "unsupported: .#zext#")>
|
<cfset arrayAppend(parsed.errors, "unsupported: .#zext#")>
|
||||||
@@ -379,9 +388,18 @@
|
|||||||
|
|
||||||
<cfelseif doc.mime_type EQ "application/msword">
|
<cfelseif doc.mime_type EQ "application/msword">
|
||||||
<cfset fileBytes = binaryDecode(doc.original_bytes, "base64")>
|
<cfset fileBytes = binaryDecode(doc.original_bytes, "base64")>
|
||||||
<cfset parsed = parseDOC_POI(fileBytes)>
|
<!--- После конвертации на ВМ это уже docx — пробуем XWPF первым --->
|
||||||
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
|
<cftry>
|
||||||
<cfset parsed = parseDOC(fileBytes)>
|
<cfset parsed = parseDOCX(fileBytes)>
|
||||||
|
<cfcatch>
|
||||||
|
<cfset parsed = {elements: [], errors: ["XWPF fallback: " & cfcatch.message]}>
|
||||||
|
</cfcatch>
|
||||||
|
</cftry>
|
||||||
|
<cfif arrayLen(parsed.elements) EQ 0>
|
||||||
|
<cfset parsed = parseDOC_POI(fileBytes)>
|
||||||
|
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
|
||||||
|
<cfset parsed = parseDOC(fileBytes)>
|
||||||
|
</cfif>
|
||||||
</cfif>
|
</cfif>
|
||||||
<cfset elements = parsed.elements>
|
<cfset elements = parsed.elements>
|
||||||
<cfset errors = parsed.errors>
|
<cfset errors = parsed.errors>
|
||||||
|
|||||||
Reference in New Issue
Block a user