<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#60;?blog &#187; fpdf</title>
	<atom:link href="http://blog.visionsoftware.pl/tag/fpdf/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.visionsoftware.pl</link>
	<description>...nie tylko o programowaniu</description>
	<lastBuildDate>Sun, 23 Mar 2014 19:23:43 +0000</lastBuildDate>
	<language>pl-PL</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>FPDI a kompresja pliku PDF</title>
		<link>http://blog.visionsoftware.pl/programowanie-php/fpdi-a-kompresja-pliku-pdf.html</link>
		<comments>http://blog.visionsoftware.pl/programowanie-php/fpdi-a-kompresja-pliku-pdf.html#comments</comments>
		<pubDate>Thu, 28 Apr 2011 21:11:02 +0000</pubDate>
		<dc:creator><![CDATA[Marcin Fliszta]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[fpdf]]></category>
		<category><![CDATA[fpdi]]></category>
		<category><![CDATA[kompresja]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[pdftk]]></category>
		<category><![CDATA[tcpdf]]></category>

		<guid isPermaLink="false">http://blog.visionsoftware.pl/?p=258</guid>
		<description><![CDATA[Biblioteka FPDI często przydaje się podczas generowania plików PDF z poziomu PHP przy użyciu TCPDF lub starszego FPDF. Umożliwia edycję dokumentów, gdyż dzięki niej możemy zaimportować gotowy plik PDF i wstawić go w obecnie tworzony jako tło. Niekiedy próba wczytania może spowodować błąd, problem ten można jednak prosto rozwiązać. Importu istniejącego pliku PDF do tworzonego dokumentu i wstawienie do niego dodatkowego tekstu można dokonać w następujący sposób: Niestety, w przypadku niektórych plików możemy napotkać na [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Biblioteka FPDI często przydaje się podczas generowania plików PDF z poziomu PHP przy użyciu TCPDF lub starszego FPDF. Umożliwia edycję dokumentów, gdyż dzięki niej możemy zaimportować gotowy plik PDF i wstawić go w obecnie tworzony jako tło. Niekiedy próba wczytania może spowodować błąd, problem ten można jednak prosto rozwiązać.<span id="more-258"></span></p>
<p>Importu istniejącego pliku PDF do tworzonego dokumentu i wstawienie do niego dodatkowego tekstu można dokonać w następujący sposób:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
require_once(&quot;inc/tcpdf/tcpdf.php&quot;);
require_once(&quot;inc/fpdi/fpdi.php&quot;);

$pdf = new FPDI();

$pdf-&gt;AddPage();
$pdf-&gt;setSourceFile('document.pdf');
$tplIdx = $pdf-&gt;importPage(1);
$pdf-&gt;useTemplate($tplIdx); 

$pdf-&gt;SetXY(50,50);
$pdf-&gt;Write(0, &quot;New text&quot;);

$pdf-&gt;Output('document.pdf', 'I'); 
?&gt;
</pre>
<p>Niestety, w przypadku niektórych plików możemy napotkać na następujący błąd:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
TCPDF ERROR: This document (document.pdf) probably uses a compression technique 
which is not supported by the free parser shipped with FPDI.
</pre>
<p>W przypadku starszej wersji FPDI może on brzmieć następująco:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
TCPDF ERROR: Unable to find xref table - Maybe a Problem with 'auto_detect_line_endings'
</pre>
<p>Jak mówi komunikat, problem dotyczy kompresji dokumnetu PDF. Możemy jednak uniknąć poszukiwania komercyjnych rozwiązań, które umożliwią wczytanie takiego pliku. Wystarczy po prostu zmienić kompresję pliku na bardziej przystępną dla biblioteki. Możemy się w tym celu posłużyć bardzo przydatnym programem pdftk.</p>
<p>Jest to bardzo mały, dostępny z linii komend program, który umożliwia dokonywania najróżniejszych manipulacji na plikach PDF. Można go użyć pod różnym systemami operacyjnymi i jest rozpowszechniany na licencji GPL. </p>
<p>W tym przypadku skorzystamy z możliwości dekompresji, a następnie ponownej kompresji. Możemy tego dokonać następującymi komendami:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
pdftk document.pdf output document2.pdf uncompress
pdftk document2.pdf output document3.pdf compress
</pre>
<p>Ostatni z wygenerowanych dokumentów powinien mieć zadowalającą wielkość, a import przez FPDI nie powinien stanowić już problemu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visionsoftware.pl/programowanie-php/fpdi-a-kompresja-pliku-pdf.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
