in reply to Win32::OLE not support Ubuntu 14.10

As noted, the approach you found is Windows-dependent.

While not impossible, I do find it unlikely that you'll find a module out there which does the heavy lifting for you on this one.

I'd say your options are:

  1. Research the file format for word docs and roll your own solution;
  2. Same as above, but do the extra work to make it a CPAN module.
    WARNING: Make sure this is legal and approved where you work -- in a tech company in the USA it is likely not (see Professional Employees and Works for Hire);
  3. Leave the problem unsolved;
  4. Update: Involve a Windows system with Word installed in the solution stream.

Good luck!

  • Comment on Re: Win32::OLE not support Ubuntu 14.10

Replies are listed 'Best First'.
Re^2: Win32::OLE not support Ubuntu 14.10
by afoken (Chancellor) on Jun 11, 2015 at 13:02 UTC
    Research the file format for word docs and roll your own solution

    The "new" DOCX format is a ZIP archive of XML files and some other stuff. One of the XML files contains the document text. Archive::Zip can pack and unpack ZIP archives, XML::LibXML and some other modules can process XML.

    The "older" DOC formats are binary blobs. No easy way there, sorry.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

      Without looking up the format, I have to say that .DOCXfiles appear to be a cinch to edit. I just unzipped one, changed into the worddirectory it created, and popped open document.xml.

      While it has the typical Microsoft Word overabundant nonlinear code insertion (I did hack one of the early .DOCformats way back when and remember that observation being applicable), the raw text components seem to be fairly consistently in between <w:t>and </w:t>tags. Before writing production code I'd want to research that a bit, of course, but for a quick-n-dirty word replacement I'd probably be willing to gamble.

      Sample of what I found:

      <w:t xml:space="preserve"> so we can order food. Please include in your RSVP how many people will be attending. </w:t>