PDF und Openoffice

Anton Spengler

Gliederung
  • Motivation
  • Geschichte
  • ODT
  • Praxis
  • Umwandlung

Motivation

HTML druckt

PDF erstellen

Möglichkeiten

ODF

Geschichte

ODF

Die Technik

OpenDocument-Textdatei

Struktur

		META-INF
		  manifest.xml
		Thumbnails
		  thumbnail.png
		Pictures
		  10000000000001E800000118B5A37F3F.png
		mimetype
		content.xml
		styles.xml
		meta.xml
		settings.xml

Welche Datei wofür?

Dateien im einzelnen

Erste Schritte

Template anlegen

Mit PHP öffnen

Entpacken


$archive = new PclZip($filename);
$list = $archive->extract(PCLZIP_OPT_PATH, POO_TMP_PATH, PCLZIP_OPT_ADD_PATH, $tmpDirName);
      

Ersetzungen

Inhalte einfügen

Zusammenpacken

Hier hilft PHPMyAdmin

   
$zip = new zipfile();
for($i = 0; $i < count($archiveFiles); $i++)
{
	$file = $archiveFiles[$i];
	$fp = fopen(POO_TMP_PATH."/".$this->tmpDirName."/".$file, "r");
	$content = fread($fp, filesize(POO_TMP_PATH."/".$this->tmpDirName."/".$file));
	fclose($fp);
	$zip->addFile($content, $file);
}
   
   

Ausgabe

Speichern und aufräumen

  
  $fp = fopen($filename, "w");
		fputs($fp, $zip->file());
		fclose($fp);
  Header("Content-Disposition:attachment; filename=MyDocument.odt");
  Header("Content-Type:application/vnd.oasis.opendocument.text");
  echo file_get_contents($filename);

  unlink( ARCHIV );
  
  

Tabellen

erweiterte Ersetzungen

Beispiel Tabelle

Der Tabellencode


 <table:table-row>
   <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string">
       <text:p text:style-name="P8">#Mwstsatz# % Mehrwertsteuer in &#8364;</text:p>
    </table:table-cell>
 </table:table-row>

Bilder

Einfach kopieren

   
<draw:image xlink:href="Pictures/#meinbild#" xlink:type="simple"
xlink:show="embed" xlink:actuate="onLoad"/>
   
   

Verpackt

Klasse phpOpenoffice.php


$dokument = new phpOpenOffice($this);
$dokument->loadDocument("/var/www/kelvin/protected/templates/templatefertig.odt");
$dokument->parse($replace);
$dokument->kopiereBilder($bildzukopieren);
$dokument->savefile("/daten/Schriftverkehr/ODT/".$dokumentenname);

Aus ODT mach PDF

Cups kann das


    export XAUTHORITY=/home/anton/.Xauthority
    export DISPLAY=:0.vt7
    /usr/bin/soffice -nolog -invisible -pt PDFDrucker datei && sleep 3
    
  1. OpenDocument
  2. PclZip
  3. PHPOpenoffice
  4. PHPMyAdmin
  5. Openoffice
  6. Openoffice Forum