pri:docbook2odt
التحويل من docbook إلى odt ثم pdf
الموقع التالي يحتوي على xsl وسكربت perl لعمل ذلك
لسبب ما سكربت بيرل لا يعمل جيدا
قمت بكتابة بديل على bash قم وضعه داخل utils
#!/bin/bash # docbook2odf.sh function error() { echo "$1" >&2 exit 1 } myscript=$( basename "$0" ) prefix=$( dirname "$0" ) [ $# -ne 2 ] && error "Usage: $myscript docbookfile.xml /path/to/outfile.odt" input=$1; shift output_file=$1; shift b_o=`basename "$output_file"` PATH_XSL="$prefix/../xsl" TEMP="/tmp/docbook2odf$$""$b_o.tmp" mkdir -p "$TEMP" || error "Could not create temp directory" mkdir -p "$TEMP/Pictures" mkdir -p "$TEMP/META-INF" mkdir -p "$TEMP/process" echo "input=$input" echo "output_file=$output_file" echo "TEMP=$TEMP" ################################################################################## # DOCBOOK -> ODF (one big xml) ################################################################################## XML_DOC="$input" XSL="$PATH_XSL/docbook.xsl" OPTIONS='--stringparam CI.style.color #329832' # --stringparam PARAMNAME PARAMVALUE xsltproc --stringparam generate.toc 1 --stringparam CI.text.copyright "وثائق أعجوبة" $OPTIONS "$XSL" "$XML_DOC" > "$TEMP/process/full.xml" || error "Could not generate xml file" # echo "application/vnd.oasis.opendocument.text" > "$TEMP/mimetype" ################################################################################## # SPLIT ################################################################################## XML_DOC="$TEMP/process/full.xml" XSL="$PATH_XSL/odf.xsl" # MANIFEST xsltproc --stringparam part manifest "$XSL" "$XML_DOC" > "$TEMP/META-INF/manifest.xml" # META xsltproc --stringparam part meta "$XSL" "$XML_DOC" > "$TEMP/meta.xml" # STYLES xsltproc --stringparam part styles "$XSL" "$XML_DOC" > "$TEMP/styles.xml" # CONTENT xsltproc --stringparam part content "$XSL" "$XML_DOC" > "$TEMP/content.xml" ################################################################################## # POSTPROCESSING ################################################################################## # TODO: implement post processing # TODO: copy pictures into TEMP directory # TODO: convert alternative nbsp character to ODF spaces # $content=~s|([\xC2\x82]+)|'<text:s text:c="'.length($1).'"/>'|eg; ################################################################################## # ZIPPING ################################################################################## #doctype=$( perl -wne 'if (/\<office:(text|presentation|spread)/) {print $1,"\n"; exit 0}' "$TEMP/process/full.xml" ) rm -rf "$TEMP/process/" pushd "$TEMP" >/dev/null zip -rq "$output_file" * popd >/dev/null rm -rf "$TEMP"
- الكثير من التنسيقات تتم عبر params
- اختيار الخطوط موجود في document-styles/font-face-decls.xsl
- تنسيق خط وكان الشريط الجانبي موجود في overlay/default.xsl
استخدام itext
هذا مثال يوضح كيفية استخدام itext لإنتاج pdf من xml لكن هنا علينا عمل فية مشتقة من org.xml.sax.helpers.DefaultHandler ثم إعراب ملف xml
pri/docbook2odt.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1