Pedimos desculpa pela hiperespecificidade dos meus requisitos, mas eles são o que são ...
A caixa que estou usando roda o Debian. Desejo apresentar um documento de Arquitetura de documentos clínicos (CDA) em PDF para enviar como anexo . O Chrome falha totalmente, o Firefox quase é bem-sucedido e xmlto
quer o TeX (que já foi um problema de instalação nesta caixa). Tem uma alternativa?
Um documento CDA é basicamente um arquivo zip
ed contendo XML, estilo e imagens. No meu caso, o filetree é como
$ find | sort # edited for brevity and PII
.
./MachineReadable_XDMFormat
./MachineReadable_XDMFormat/HTML
./MachineReadable_XDMFormat/HTML/IMAGES
# list of PNGs omitted
./MachineReadable_XDMFormat/HTML/STYLE
./MachineReadable_XDMFormat/HTML/STYLE/colors.css
./MachineReadable_XDMFormat/HTML/STYLE/main.css
./MachineReadable_XDMFormat/IHE_XDM
./MachineReadable_XDMFormat/IHE_XDM/my_ID
./MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML # see note#=1
./MachineReadable_XDMFormat/IHE_XDM/my_ID/METADATA.XML
./MachineReadable_XDMFormat/IHE_XDM/my_ID/STYLE.XSL
./MachineReadable_XDMFormat/INDEX.HTM # see note#=2
./MachineReadable_XDMFormat/README.TXT # see note#=3
./MachineReadable_XDMFormat/Summary.pdf # see note#=4
Notas:
DOC0001.XML
é a carga de dados: todos os outros arquivos são apenas decoração. INDEX.HTM
não é uma renderização de DOC0001.XML
; é uma página totalmente separada com um link para DOC0001.XML
( et al ) mais algum texto explicativo. README.TXT
não é muito: apenas as informações acima, além de como unzip
um arquivo. Summary.pdf
não resolve meu problema? Infelizmente, este PDF contém um lote de informações irrelevantes, porque .../DOC0001.XML
(que contém os dados reais) contém muitos itens que não são relevantes para o consumidor. Eu posso editar esse XML sem dificuldade, e até renderizar o XML editado (veja seção = Firefox
abaixo), mas não consigo converter esse XML editado em um PDF ... daí minha pergunta. Eu tenho o Chrome (também conhecido por google-chrome-stable
) version = 60.0.3112.90 (que eu acredito que esteja atualmente atualizado para a versão Debian = 8.9, que eu acredito ser estável para o Debian atual). Quando estou nisso e faço
Ctrl-o
.../MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML
O Chrome não faz absolutamente nada: nenhum erro, mas também uma página / guia completamente em branco. Da mesma forma, se eu
Ctrl-o
.../MachineReadable_XDMFormat/INDEX.HTM
DOC0001.XML
O Chrome processa INDEX.HTM
de forma adequada, mas falha como anteriormente em DOC0001.XML
.
Eu tenho a versão do Firefox = 54.0 (que eu acredito que esteja atualmente atualizada para a versão Debian = 8.9, que eu acredito ser estável para o Debian atual). Quando estou nisso e faço
Ctrl-o
.../MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML
O Firefox processa o documento de forma correta / adequada. Por isso eu pensei que eu poderia usar a funcionalidade normal do Firefox Print to File
para imprimir isso ... mas ele falha, pois ele tenta imprimir o bastante longo DOC0001.XML
como 4 páginas:
Results
e nenhum outro texto. No XML, esse é o <section>
contendo todos os dados reais (como <item>
s). Print to File
apenas trunca a única página :-(
INDEX.HTM
. xmlto
(do pacote Debian de mesmo nome) tenta, mas
internal
abaixo). xmlto
renderizará esse XML adequadamente, pois a raiz desse documento (CDA) é ∉ {appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex}
. O que eu tentei:
me@it:~ $ pushd /path/to/CDA/
me@it:/path/to/CDA $ ls -al
> drwxr-xr-x 4 me me 4096 Jul 21 10:38 MachineReadable_XDMFormat
> -rw-r--r-- 1 me me 1075851 Jul 21 13:35 Summary.pdf
me@it:/path/to/CDA $ date ; xmlto pdf ./MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML ; date
> Wed Aug 2 15:03:17 MST 2017
> xmlto: /path/to/CDA/MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML does not validate (status 3)
> xmlto: Fix document syntax or use --skip-validation option
> validity error : no DTD found!
...
me@it:/path/to/CDA $ date ; find ./ -type f | fgrep -ie 'dtd' | wcl
> Wed Aug 2 15:04:10 MST 2017
> 0
me@it:/path/to/CDA $ date ; xmlto --skip-validation pdf ./MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML ; date
> Wed Aug 2 15:04:32 MST 2017
> ERROR: Document root element for FO output must be one of the following elements: appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex
> PassiveTeX is needed for this format, but it is not installed. Please install the passivetex package.
> Wed Aug 2 15:04:33 MST 2017
# Note PassiveTeX is a *TeX package
me@it:/path/to/CDA $ date ; xmlto --with-fop --skip-validation pdf ./MachineReadable_XDMFormat/IHE_XDM/my_ID/DOC0001.XML ; date
> Wed Aug 2 15:12:39 MST 2017
> ERROR: Document root element for FO output must be one of the following elements: appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex
> [Fatal Error] :-1:-1: Premature end of file.
> Exception
> org.apache.fop.apps.FOPException: org.xml.sax.SAXParseException; Premature end of file.
> javax.xml.transform.TransformerException: org.xml.sax.SAXParseException; Premature end of file.
>
> /tmp/xmlto.SEzLdk
> Wed Aug 2 15:12:41 MST 2017
Ou seja, restrições do meu lado:
... a última vez que tentei instalar o texlive
, (IIRC) ele foi desativado devido à falta de espaço. Isso pode ser simplesmente devido ao espaço insuficiente alocado na minha partição /
, que é na verdade uma partição para tudo que não é {/boot, /home, /swap}
. Detalhes:
# I tweak the header, but the data comes from ...
me@it:~ $ df --human-readable | fgrep -ve 'Filesystem' | sort --key=2 --reverse --sort=human-numeric
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/LVM2_crypt-home 322G 304G 19G 95% /home
/dev/dm-2 20G 18G 891M 96% /
tmpfs 1.6G 1.3M 1.6G 1% /run/shm
/dev/sda3 477M 73M 375M 17% /boot
# ... rest are fake filesystems like '/dev'
# Notes on 'lsblk':
# 'sda1' == pre-installed Windows system drive
# 'sda2' == pre-installed Windows apps drive
# Both are whackable, but I lack the time to reallocate the space
# (and possibly reinstall after unforeseen/disastrous failure).
me@it:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 16.6G 0 part
├─sda2 8:2 0 97.7G 0 part
├─sda3 8:3 0 500M 0 part /boot
└─sda5 8:5 0 351G 0 part
└─LVM2_crypt 254:0 0 351G 0 crypt
├─LVM2_crypt-swap 254:1 0 3.9G 0 lvm
├─LVM2_crypt-root 254:2 0 20G 0 lvm /
└─LVM2_crypt-home 254:3 0 327.1G 0 lvm /home
sr0 11:0 1 1024M 0 rom