أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

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

أدوات الموقع


pri:docbook2odt

اختلافات

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

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

جانبي المراجعة السابقةالمراجعة السابقة
pri:docbook2odt [2010/03/27 16:43] alsadipri:docbook2odt [2015/04/23 03:21] (حالي) – تحرير خارجي 127.0.0.1
سطر 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
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki