أدوات المستخدم

أدوات الموقع


pri:docbook2odt

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

المراجعة التالية
المراجعة السابقة
pri:docbook2odt [2010/02/13 14:11]
alsadi تم إنشاء
pri:docbook2odt [2015/04/23 00:21] (حالي)
سطر 1: سطر 1:
 +====== التحويل من docbook إلى odt ثم pdf ======
 +الموقع التالي يحتوي على xsl وسكربت perl لعمل ذلك
 +  * http://​open.comsultia.com/​docbook2odf/​
 +
 +لسبب ما سكربت بيرل لا يعمل جيدا
 +
 +قمت بكتابة بديل على bash قم وضعه داخل utils
 +
 +<code bash>
 +#!/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"​
 +</​code>​
 +
 +  * الكثير من التنسيقات تتم عبر params
 +  * اختيار الخطوط موجود في document-styles/​font-face-decls.xsl
 +  * تنسيق خط وكان الشريط الجانبي موجود في overlay/​default.xsl
 +
 +
 +
 +===== استخدام itext =====
 +هذا مثال يوضح كيفية استخدام itext لإنتاج pdf من xml لكن هنا علينا عمل فية مشتقة من org.xml.sax.helpers.DefaultHandler ثم إعراب ملف xml
 +
 +  * http://​itextpdf.com/​tutorials/​attachments/​zip/​doclevelattach.zip
 +  * http://​itextpdf.com/​tutorials.php?​branch=tutorials.attachments&​node=doclevel
 +
  
pri/docbook2odt.txt · آخر تعديل: 2015/04/23 00:21 (تحرير خارجي)