mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-01 14:49:15 +00:00
(kind of) fix for #1011 and little corrections for PDF export
This commit is contained in:
parent
894cd087f4
commit
1cedeb681f
2 changed files with 38 additions and 10 deletions
10
inc/3rdparty/libraries/tcpdf/tcpdf.php
vendored
10
inc/3rdparty/libraries/tcpdf/tcpdf.php
vendored
|
@ -2926,12 +2926,18 @@ class TCPDF {
|
||||||
*/
|
*/
|
||||||
public function Error($msg) {
|
public function Error($msg) {
|
||||||
// unset all class variables
|
// unset all class variables
|
||||||
|
$this->_destroy(true);
|
||||||
|
throw new Exception('TCPDF ERROR: '.$msg);
|
||||||
|
/*
|
||||||
|
|
||||||
|
I had problems with the constants for some reason, so here we force
|
||||||
|
|
||||||
$this->_destroy(true);
|
$this->_destroy(true);
|
||||||
if (defined('K_TCPDF_THROW_EXCEPTION_ERROR') AND !K_TCPDF_THROW_EXCEPTION_ERROR) {
|
if (defined('K_TCPDF_THROW_EXCEPTION_ERROR') AND !K_TCPDF_THROW_EXCEPTION_ERROR) {
|
||||||
die('<strong>TCPDF ERROR: </strong>'.$msg);
|
die('<strong>TCPDF ERROR: </strong>'.$msg);
|
||||||
} else {
|
} else {
|
||||||
throw new Exception('TCPDF ERROR: '.$msg);
|
throw new Exception('TCPDF ERROR: '.$msg);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6915,7 +6921,7 @@ class TCPDF {
|
||||||
$ph = $this->getHTMLUnitToUnits($h, 0, $this->pdfunit, true) * $this->imgscale * $this->k;
|
$ph = $this->getHTMLUnitToUnits($h, 0, $this->pdfunit, true) * $this->imgscale * $this->k;
|
||||||
$imsize = array($pw, $ph);
|
$imsize = array($pw, $ph);
|
||||||
} else {
|
} else {
|
||||||
$this->Error('[Image] Unable to get the size of the image: '.$file);
|
$this->Error('[Image] Unable to fetch image: '.$file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// file hash
|
// file hash
|
||||||
|
|
|
@ -33,7 +33,7 @@ class WallabagEBooks
|
||||||
$entry = $this->wallabag->store->retrieveOneById($entryID, $this->wallabag->user->getId());
|
$entry = $this->wallabag->store->retrieveOneById($entryID, $this->wallabag->user->getId());
|
||||||
$this->entries = array($entry);
|
$this->entries = array($entry);
|
||||||
$this->bookTitle = $entry['title'];
|
$this->bookTitle = $entry['title'];
|
||||||
$this->bookFileName = substr($this->bookTitle, 0, 200);
|
$this->bookFileName = str_replace('/', '_', substr($this->bookTitle, 0, 200));
|
||||||
$this->author = preg_replace('#^w{3}.#', '', Tools::getdomain($entry["url"])); # if only one article, set author to domain name (we strip the eventual www part)
|
$this->author = preg_replace('#^w{3}.#', '', Tools::getdomain($entry["url"])); # if only one article, set author to domain name (we strip the eventual www part)
|
||||||
Tools::logm('Producing ebook from article ' . $this->bookTitle);
|
Tools::logm('Producing ebook from article ' . $this->bookTitle);
|
||||||
break;
|
break;
|
||||||
|
@ -81,6 +81,9 @@ class WallabagEpub extends WallabagEBooks
|
||||||
public function produceEpub()
|
public function produceEpub()
|
||||||
{
|
{
|
||||||
Tools::logm('Starting to produce ePub 3 file');
|
Tools::logm('Starting to produce ePub 3 file');
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
$content_start =
|
$content_start =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
. "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:epub=\"http://www.idpf.org/2007/ops\">\n"
|
. "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:epub=\"http://www.idpf.org/2007/ops\">\n"
|
||||||
|
@ -155,6 +158,11 @@ class WallabagEpub extends WallabagEBooks
|
||||||
$book->finalize();
|
$book->finalize();
|
||||||
$zipData = $book->sendBook($this->bookFileName);
|
$zipData = $book->sendBook($this->bookFileName);
|
||||||
Tools::logm('Ebook produced');
|
Tools::logm('Ebook produced');
|
||||||
|
}
|
||||||
|
catch (Exception $e) {
|
||||||
|
Tools::logm('PHPePub has encountered an error : '.$e->getMessage());
|
||||||
|
$this->wallabag->messages->add('e', $e->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +175,7 @@ class WallabagMobi extends WallabagEBooks
|
||||||
|
|
||||||
public function produceMobi()
|
public function produceMobi()
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
Tools::logm('Starting to produce Mobi file');
|
Tools::logm('Starting to produce Mobi file');
|
||||||
$mobi = new MOBI();
|
$mobi = new MOBI();
|
||||||
$content = new MOBIFile();
|
$content = new MOBIFile();
|
||||||
|
@ -197,6 +205,11 @@ class WallabagMobi extends WallabagEBooks
|
||||||
// we offer file to download
|
// we offer file to download
|
||||||
$mobi->download($this->bookFileName.'.mobi');
|
$mobi->download($this->bookFileName.'.mobi');
|
||||||
Tools::logm('Mobi file produced');
|
Tools::logm('Mobi file produced');
|
||||||
|
}
|
||||||
|
catch (Exception $e) {
|
||||||
|
Tools::logm('PHPMobi has encountered an error : '.$e->getMessage());
|
||||||
|
$this->wallabag->messages->add('e', $e->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,15 +219,16 @@ class WallabagPDF extends WallabagEbooks
|
||||||
{
|
{
|
||||||
|
|
||||||
Tools::logm('Starting to produce PDF file');
|
Tools::logm('Starting to produce PDF file');
|
||||||
|
@define ('K_TCPDF_THROW_EXCEPTION_ERROR', TRUE);
|
||||||
|
try {
|
||||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||||
|
|
||||||
Tools::logm('Filling metadata for PDF...');
|
Tools::logm('Filling metadata for PDF...');
|
||||||
$pdf->SetCreator(PDF_CREATOR);
|
$pdf->SetCreator(PDF_CREATOR);
|
||||||
$pdf->SetAuthor('');
|
$pdf->SetAuthor('wallabag');
|
||||||
$pdf->SetTitle($this->bookTitle);
|
$pdf->SetTitle($this->bookTitle);
|
||||||
$pdf->SetSubject('TCPDF Tutorial');
|
$pdf->SetSubject('Articles via wallabag');
|
||||||
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
|
$pdf->SetKeywords('wallabag');
|
||||||
|
|
||||||
Tools::logm('Adding introduction...');
|
Tools::logm('Adding introduction...');
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
|
@ -229,11 +243,14 @@ class WallabagPDF extends WallabagEbooks
|
||||||
$i = 1;
|
$i = 1;
|
||||||
Tools::logm('Adding actual content...');
|
Tools::logm('Adding actual content...');
|
||||||
foreach ($this->entries as $item) {
|
foreach ($this->entries as $item) {
|
||||||
|
$tags = $this->wallabag->store->retrieveTagsByEntry($entry['id']);
|
||||||
|
foreach ($tags as $tag) {
|
||||||
|
$pdf->SetKeywords($tag['value']);
|
||||||
|
}
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
$html = '<h1>' . $item['title'] . '</h1>';
|
$html = '<h1>' . $item['title'] . '</h1>';
|
||||||
$html .= $item['content'];
|
$html .= $item['content'];
|
||||||
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
|
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
|
||||||
$i = $i+1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set image scale factor
|
// set image scale factor
|
||||||
|
@ -241,6 +258,11 @@ class WallabagPDF extends WallabagEbooks
|
||||||
|
|
||||||
|
|
||||||
$pdf->Output($this->bookFileName . '.pdf', 'FD');
|
$pdf->Output($this->bookFileName . '.pdf', 'FD');
|
||||||
|
}
|
||||||
|
catch (Exception $e) {
|
||||||
|
Tools::logm('TCPDF has encountered an error : '.$e->getMessage());
|
||||||
|
$this->wallabag->messages->add('e', $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue