v1.0.79: .doc → XWPF первым (после конвертации), HWPF только fallback

This commit is contained in:
2026-06-21 08:07:59 +04:00
parent 9eaa6d1f08
commit 0be35bd3db
+18
View File
@@ -318,10 +318,19 @@
<cfset parsed = parseDOCX(entryBytes)> <cfset parsed = parseDOCX(entryBytes)>
</cfif> </cfif>
<cfelseif zext EQ "doc"> <cfelseif zext EQ "doc">
<!--- После конвертации это уже docx — пробуем XWPF первым --->
<cftry>
<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)> <cfset parsed = parseDOC_POI(entryBytes)>
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0> <cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
<cfset parsed = parseDOC(entryBytes)> <cfset parsed = parseDOC(entryBytes)>
</cfif> </cfif>
</cfif>
<cfelse> <cfelse>
<cfset arrayAppend(parsed.errors, "unsupported: .#zext#")> <cfset arrayAppend(parsed.errors, "unsupported: .#zext#")>
</cfif> </cfif>
@@ -379,10 +388,19 @@
<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")>
<!--- После конвертации на ВМ это уже docx — пробуем XWPF первым --->
<cftry>
<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)> <cfset parsed = parseDOC_POI(fileBytes)>
<cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0> <cfif arrayLen(parsed.elements) EQ 0 AND arrayLen(parsed.errors) GT 0>
<cfset parsed = parseDOC(fileBytes)> <cfset parsed = parseDOC(fileBytes)>
</cfif> </cfif>
</cfif>
<cfset elements = parsed.elements> <cfset elements = parsed.elements>
<cfset errors = parsed.errors> <cfset errors = parsed.errors>
<cfelse> <cfelse>