Extension talk:Pdf Export Dompdf
From MediaWiki.org
Contents |
[edit] PDFExport_body.php
We had a problem with undefined variables. So we changes the file in the line 138
We altered the last line, the two lines above a new.
After this change everything works fine.
if(!isset($page)) $page = null; $arr = array('Attachment'=>0); $domPDF->stream(utf8_decode($page) . ".pdf", $arr);
Added: 27 January 2009
- This works for me too! Thank you! --Aptd 22:23, 2 September 2009 (UTC)
[edit] No Images
We tried to implement this class, but it doesnt include any of our pictures. Is there a solution to it?
[edit] Not a bug
Images are supported. This extension, just like the other PDF exporters, uses the style sheet that's served to "print" media. In short, you should have a print.css file in your theme. You will need to edit that to include background watermarks and the like. Alternatively, you can edit $IP/extensions/PdfExport/PdfExport_headfoot.php if you just want to include a logo, letterhead, copyright, info, etcetera.
[edit] Problems with nontrivial wikitext
Running MediaWiki 1.13.2, PDFExport 2.0 with dompdf changes described here.
A lot of very simple pages print fine with dompdf; however, some pages give errors on display. For example, the following simple table in a MW page gives a 'File does not being with "%PDF-"...' error on Safari under Mac OS X:
{|border="1"
|
# <nowiki>test</nowiki>
|}
If you remove the nowiki, it works. (EDIT) However, the following code which does not use nowiki and does not number the table cell also doesn't work:
{|border="1"
|
test
|}
=test=
==test1==
==test2==
==test3==
EDIT: I've figured out that the problem above may be related to the generation of tables of contents. If I turn off this with __NOTOC__, the PDF print works OK. However, on a very large page which is just a string of headers and pre blocks, I still get the "File does not begin with %PDF-" error when I export to PDF.
We're also getting the following written to the PDF on some pages:
exception 'DOMPDF_Exception' with message 'Box property calculation requires containing block width' in /usr/local/apache2/htdocs /wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php:111
Stack trace:
#0 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php(368): Block_Frame_Reflower->_calculate_restricted_width()
#1 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Block_Frame_Reflower->reflow()
#2 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php(408): Frame_Decorator->reflow()
#3 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Block_Frame_Reflower->reflow()
#4 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php(408): Frame_Decorator->reflow()
#5 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Block_Frame_Reflower->reflow()
#6 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php(408): Frame_Decorator->reflow()
#7 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Block_Frame_Reflower->reflow()
#8 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/table_cell_frame_reflower.cls.php(115): Frame_Decorator->reflow()
#9 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Table_Cell_Frame_Reflower->reflow()
#10 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/table_row_frame_reflower.cls.php(70): Frame_Decorator->reflow()
#11 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Table_Row_Frame_Reflower->reflow()
#12 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/table_frame_reflower.cls.php(468): Frame_Decorator->reflow()
#13 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Table_Frame_Reflower->reflow()
#14 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/block_frame_reflower.cls.php(408): Frame_Decorator->reflow()
#15 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Block_Frame_Reflower->reflow()
#16 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/page_frame_reflower.cls.php(78): Frame_Decorator->reflow()
#17 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/frame_decorator.cls.php(387): Page_Frame_Reflower->reflow()
#18 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/dompdf/include/dompdf.cls.php(417): Frame_Decorator->reflow()
#19 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/PdfExport_body.php(136): DOMPDF->render()
#20 /usr/local/apache2/htdocs/wiki/extensions/PdfExport/PdfExport_body.php(171): SpecialPdf->outputpdf(Array, ' --portrait ', 'Letter')
#21 /usr/local/apache2/htdocs/wiki/includes/SpecialPage.php(534): SpecialPdf->execute(NULL)
#22 /usr/local/apache2/htdocs/wiki/includes/Wiki.php(224): SpecialPage::executePath(Object(Title))
#23 /usr/local/apache2/htdocs/wiki/includes/Wiki.php(55): MediaWiki->initializeSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest))
#24 /usr/local/apache2/htdocs/wiki/index.php(93): MediaWiki->initialize(Object(Title), NULL, Object(OutputPage), Object(User), Object(WebRequest))
#25 {main}
VIngogly 16:15, 6 February 2009 (UTC)
[edit] Noted
I have taken notice of your problem. I will look into a fix, but I must say right off the bat that it is a limitation of the DOMPDF class itself (and not the fault of this extension, per se). The class, though it works stupendously, is still quirky. The author seems to have abandoned it, but I will see about picking up where he left off.
reply from Vingogly: I've come to the same conclusion myself - DOMPDF doesn't handle anything beyond the simplest wikitext very well. I'm looking at other alternatives like HTML_ToPDF to integrate into a custom solution for my client. We really do need a solution that works here, and that will let us integrate a custom footer with a copyright disclaimer on every printed page. Thanks for your help!
VIngogly 17:40, 17 February 2009 (UTC)
- What was your solution, i am getting the same problem. 67.97.209.36 15:33, 11 June 2009 (UTC)
[edit] Code has been updated
I took the liberty of updating the code to be compatible with the latest versions of Pdf Export, DOMPDF, and MediaWiki. It should work flawlessly. No problems with autoload functionality if you're running PHP 5.1.2 or higher (See: spl_autoload_register()). Temp directory has been changed to use system temp directory. Change that back to $wgTmpDirectory (don't forget to globalize it) if you have any issues. All modifications have been noted in the source code. Feel free to modify as needed.
| Problems resolved with new version |
|---|
| Invalid argument supplied for foreach
i've got another problem with the extension, getting this warning: (I'm using MediaWiki 1.12.) Warning: Invalid argument supplied for foreach() in D:\server\htdocs\Wiki\extensions\pdfExport\pdfExport.php on line 157 any ideas? 19:13, 26 November 2008 (UTC)
|
| Class 'DOMPDF' not found
I've got dompdf and the extension both installed, but it looks like it's not picking up an include file somewhere. The configuration is right nearest I can tell also. I'm using MediaWiki 1.12. --N0ctrnl 21:01, 28 March 2008 (UTC) [Fri Mar 28 15:55:08 2008] [error] [client 10.1.1.1] PHP Fatal error: Class 'DOMPDF' not found in /var/www/html/wiki/extensions/PdfExport/PdfExport.php on line 142, referer: http://server/wiki/index.php/Main_Page
function DOMPDF_autoload($class) {
$filename = mb_strtolower($class) . ".cls.php";
require_once(DOMPDF_INC_DIR . "/$filename");
}
require_once("$IP/extensions/dompdf/dompdf_config.inc.php");
I have the exact same : Fatal error: Class 'DOMPDF' not found in C:\wamp\mediawiki-1.10.0\extensions\PdfExport\PdfExport.php on line 142 but since php isn't my mother tong, I have a hard time debugging it. I dumbly used the code provided on the extension's page. brice 05:56, 11 April 2008 (UTC) ==> ok, I got it from dompdf\dompdf_config.inc.php :
/**
* DOMPDF autoload function
*
* If you have an existing autoload function, add a call to this function
* from your existing __autoload() implementation.
*
* @param string $class
*/
So I might try to add it to the mediawiki/include/AutoLoader.php file. but i sounds quite odd... I'll try brice 213.30.139.168 08:03, 11 April 2008 (UTC) okay okay !! last but not least : http://sourceforge.net/forum/message.php?msg_id=4819436 so if ( !function_exists("__autoload") ) { /** * Default __autoload() function * * @param string $class */ function __autoload($class) { DOMPDF_autoload($class); } } becomes if ( !function_exists("__autoload") ) { /** * Default __autoload() function * * @param string $class */ function __autoload($class) { DOMPDF_autoload($class); } } else { spl_autoload_register("DOMPDF_autoload"); } and it now works like a charm. brice 213.30.139.168 08:48, 11 April 2008 (UTC)
The Class DOMPDF is not found in Pdfexport.php on line 142 My "helloworld.php" script for dompdf works, so I know its something the mediawiki environment is doing that is causing it to fail. Aside from editing dompdf_config.php is there anything else I can do?? --99.232.79.240 09:13, 17 December 2008 (UTC) |
| class dompdf
add require_once("extensions/PdfExport/PdfExport.php"); to your LocalSettings.php
Keine Installation möglich / NO Installation possible PHP sagt / PHP says: The Class DOMPDF is not found in Pdfexport.php on line 142 |
[edit] Fail to render a pdf if restricted access
Hi, the extension works fine. Also the version with htmldoc. One small problem occurs if you restrict the access e.g. $wgGroupPermissions['*']['read'] = false;
In this case the extension fails, because she dont use the rights of the actual user. If i use the restricted access as above, i got access denied error.... you have to sign in first.
it would by great, if you can enhance it.
--Ozz 17:25, 20 October 2009 (UTC)