- From: Colin Mackenzie <colin@mackenziesolutions.co.uk>
- Date: Wed, 27 May 2020 15:18:37 +0100
- To: xproc-dev@w3.org
- Message-ID: <CAJ+9unOgigFY2R6wo351kn5+7XGasxEVOhcFS7AKF_8ZZmsCWw@mail.gmail.com>
Hi
I have been trying to find the best way in Xproc3 to take a .docx file,
process only a couple of the content files then save to a new ZIP
containing the unchanged plus updated files.
I am trying to avoid having to load or process files in the ZIP that I do
not need to update.
I have got stuck at the point I update the ZIP.
I have tried various approaches, created a small test case to simply add a
file to an archive (below) and changed the .docx to a windows created Zip
or Zip created by other applications but no matter what I try I get the
following message
=================================
MorganaXProc-IIIse 0.9.2.5-beta
Copyright 2011-2020 by <xml-project /> Achim Berndzen
=================================
<?xml version="1.0" encoding="UTF-8"?>
<c:errors xmlns:c="http://www.w3.org/ns/xproc-step"><c:error
code="err:XC0085" name="saveZIP" type="p:archive"
href="file:///C:/Users/colin/Documents/newco/wordXproc3Automate/testzip.xpl"
line="11" column="31" xmlns:p="http://www.w3.org/ns/xproc" xmlns:err="
http://www.w3.org/ns/xproc-error"><message>Error processing ZIP archive:
invalid entry compressed size (expected 3537 but got 3304
bytes)</message></c:error></c:errors>
When I look inside the ZIP or check the zip-manifest then the compressed
file size for the first file in the ZIP is 3537 bytes.
Is this a bug or am I doing something wrong?
The Xproc is
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="
http://www.w3.org/ns/xproc-step"
xmlns:cm="http://macksol.co.uk" xmlns:xs="
http://www.w3.org/2001/XMLSchema"
version="3.0" name="autoDocX" type="cm:autoDocX">
<p:input port="source" sequence="true"/>
<p:output port="result" primary="true" sequence="true" />
<p:load name="fileToAdd" href="manifestShell.xml"/>
<p:archive name="saveZIP">
<p:with-input port="manifest" pipe="@fileToAdd"/>
<p:with-input port="archive" href="fileTest.zip"/>
</p:archive>
<p:store name="storeZIP" href="fileTestOut.zip"/>
</p:declare-step>
The manifest file loaded @fileToAdd that points to the file to be added is
<?xml version="1.0" encoding="UTF-8"?>
<c:archive xmlns:c="http://www.w3.org/ns/xproc-step">
<c:entry name="logic.xml" href="logic.xml"/>
</c:archive>
Thanks
Colin
Received on Wednesday, 27 May 2020 14:27:37 UTC