[EP-tech] .docx Export

John Salter J.Salter at leeds.ac.uk
Thu Jul 16 17:25:18 BST 2020


Hi Dennis,
I think what's getting returned currently isn't any form of OODoc - it's a text file with an odt extension - which when opened defaults to OpenOffice and looks like an ODF document.
Changing the filename at the end of the exportview URL supports this e.g.:
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmadoc-dev.bib.uni-mannheim.de%2Fcgi%2Fexportview%2Fyear%2F2019%2FOffice%2Ftest.txt&data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&sdata=4Kp04DOF9Y7fnU8RBfRc%2BYKOAR8tIfp5lw0JQKZ%2BIyg%3D&reserved=0


Looking at the OODoc->save method:
	https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmetacpan.org%2Fsource%2FJMGDOC%2FOpenOffice-OODoc-2.125%2FOODoc%2FFile.pm%23L679-704&data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&sdata=WsBL16o2f2el5mtEuJm9ZyeqnakiGE%2FG0lcHawTMTKg%3D&reserved=0
there is some logic to handle a few different situations.

Possibly something like:
my $tmp;
open(my $TMP,'>',\$tmp);
$container->save( $TMP );
return $tmp;

would work?
I don't have a way to test this right now - if that doesn't help, I'll take a look over the weekend!

Cheers,
John


-----Original Message-----
From: Dennis Müller [mailto:dennis.mueller at bib.uni-mannheim.de] 
Sent: 16 July 2020 10:38
To: John Salter <J.Salter at leeds.ac.uk>; eprints-tech at ecs.soton.ac.uk
Subject: Re: [EP-tech] .docx Export

Dear John,

thanks again for assisting. I played around with ideas from the links
you provided and the ooffice documentation, but it seems I misunderstood
something fundamentally. Please see my simplified testing code attached.

As previously mentioned, the file saved on the server under $output
looks correct; I just can't get it handed over to the browser.

The export is called via the cgi/exportview url:
<form method="get" accept-charset="utf-8"
action="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmadoc-dev.bib.uni-mannheim.de%2Fcgi%2Fexportview&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=NWmck91lI9CfaiqQPvglRcZCkWvV8AJFxwhS2cR58Qw%3D&amp;reserved=0">

These are the called urls I see in the Firefox console:
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmadoc-dev.bib.uni-mannheim.de%2Fcgi%2Fexportview%3Fformat%3DOffice%26_action_export_redir%3DExportieren%26view%3Dpeople%26values%3DMueller%253D3ADennis%253D3A%253D3A&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=siPaZhiRhpTJIV7ChIaFdoCuLrV38%2Bq3xv50GSaUM9g%3D&amp;reserved=0
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmadoc-dev.bib.uni-mannheim.de%2Fcgi%2Fexportview%2Fpeople%2FMueller%3D3ADennis%3D3A%3D3A%2FOffice%2FMueller%3D3ADennis%3D3A%3D3A.odt&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=FCjugMj%2BLKHTTiffg%2FYkkw5M3DSVSZHHIdZ%2FRq%2B%2Fzwc%3D&amp;reserved=0

Many thanks and best regards
Dennis

Am 14.07.20 um 18:50 schrieb John Salter:
> Hi Dennis,
> Glad you made this work - hopefully the last part isn't too difficult to sort out!
> 
> How are you calling the Export? Is it via the normal /cgi/export url, or another means?
> 
> Have you got a 'mimetype' and a 'suffix' parameter set in your export plugin?
> 
> Does the 'MultilineExcel' export plugin provide a useful example?
> - Setting up either the supplied filehandle, or a filehandle to a variable:
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2Fmultiline_excel%2Fblob%2Fmaster%2Flib%2Fplugins%2FEPrints%2FPlugin%2FExport%2FMultilineExcel.pm%23L44-L58&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=gX5LFXn%2BZmfB8W6W0jx5NnxcqGPKrq%2B0sy3A%2BU1Qjug%3D&amp;reserved=0
> - returning - either undef (if a filehandle was supplied) - or the variable:
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2Fmultiline_excel%2Fblob%2Fmaster%2Flib%2Fplugins%2FEPrints%2FPlugin%2FExport%2FMultilineExcel.pm%23L93-L98&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=xGNPVR4PjRNOihBi5Ra%2BKp1rpRiaoWVNTFcFLAcX6FE%3D&amp;reserved=0
> 
> If that doesn't help, let me know and I'll do some more thinking!
> 
> Cheers,
> John
> 
> -----Original Message-----
> From: eprints-tech-bounces at ecs.soton.ac.uk [mailto:eprints-tech-bounces at ecs.soton.ac.uk] On Behalf Of Dennis Müller via Eprints-tech
> Sent: 14 July 2020 16:49
> To: John Salter <J.Salter at leeds.ac.uk>; eprints-tech at ecs.soton.ac.uk
> Subject: Re: [EP-tech] .docx Export
> 
> Hi John,
> 
> thanks for your quick answer. With your help, I could more or less do
> what I want with the document saving it to some path on the server.
> 
> However, I'm struggling to find out how to return the actual document in
> my export plugin's "output_list" subroutine. Returning $oodoc or the
> file path doesn't work, obviously. Can you help me out once more, please?
> 
> Cheers,
> Dennis
> 
> Am 10.07.20 um 15:33 schrieb John Salter:
>> Hi Dennis,
>> I think you should be able to achieve this.
>> It's similar to the way the OpenOffice / Coversheets works.
>> That's normally configured to export as a PDF, but it first takes an OpenOffice document (your branded template), and replaces tags (like '##TITLE##') with rendered content.
>>
>> These are the tags:
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2Fcoversheets%2Fblob%2Fmaster%2Fcfg%2Fcfg.d%2Fz_coversheet_tags.pl&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=aLEKChVWNXxZfDxDPvggjGknwPQSfEUpX9Zb1NDBFD4%3D&amp;reserved=0
>> and this adds them to the OpenOffice document:
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2Fcoversheets%2Fblob%2Fmaster%2Flib%2Fplugins%2FEPrints%2FPlugin%2FConvert%2FAddCoversheet.pm%23L114-L127&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=VWWHMfZm4Dm%2FuJzjH6PTKqczmJdp6MUgd6aqSN68BZA%3D&amp;reserved=0 
>>
>> Does that help?
>>
>> There are probably other ways - possibly other perl modules that would allow a more direct approach - but the above stuff seems to work OK.
>> I'm using it with LibreOffice rather than OpenOffice if that's useful to know too.
>>
>> Cheers,
>> John
>>
>> -----Original Message-----
>> From: eprints-tech-bounces at ecs.soton.ac.uk [mailto:eprints-tech-bounces at ecs.soton.ac.uk] On Behalf Of Dennis Müller via Eprints-tech
>> Sent: 10 July 2020 14:15
>> To: eprints-tech at ecs.soton.ac.uk
>> Subject: [EP-tech] .docx Export
>>
>> Hi everyone,
>>
>> we've had a user request for exporting views/searches as a .docx file
>> styled in our corporate design. Has anyone ever done something similar?
>>
>> Just for the file format, it might work to "wrap" a simple text export
>> in an exporter that has a
>> "application/vnd.openxmlformats-officedocument.wordprocessingml.document" mimetype,
>> but I don't see where I could slip in the design template along the way.
>>
>> I'd be glad to hear from your experiences. :)
>>
>> Best regards
>> Dennis
>>
> 

-- 
Dennis Müller, B.A.


Universität Mannheim
Universitätsbibliothek
Digitale Bibliotheksdienste | Schloss Schneckenhof West | 68131 Mannheim

Tel: +49 621 181-3023
E-Mail: dennis.mueller at bib.uni-mannheim.de

Web: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.bib.uni-mannheim.de%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C5d78131184304a49208908d829a4d661%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=Ryy%2FCwQd01z9nthgIEjMVymtIJ%2F03VD9yrj2RTEB3mo%3D&amp;reserved=0



More information about the Eprints-tech mailing list