Code Monkey home page Code Monkey logo

tcpdf's Introduction

TCPDF

Description

TCPDF is a small wrapper Extension for the tcpdf library.

tcpdf's People

Contributors

extcode avatar

Watchers

 avatar  avatar

tcpdf's Issues

PHP 8 compatibility, TYPO3 11/12 compatibility

The extension is working with TYPO11 and PHP 7.4. With PHP 8 it is also working but there are some deprecation warnings like "Deprecated: Optional parameter $isunicode declared before required parameter $currentfont is implicitly treated as a required parameter ...".

Template paths are evaluated in the wrong order

Method \Extcode\TCPDF\Service\TsTCPDF::getStandaloneView, line 234, iterates over the configured templateRootPaths settings. Because the paths are sorted descending by key, a configured override comes first, the default last, resetting the template path of the override. In effect, the templates are evaluated the other way around, than extbase/fluid do by default.

The method should use an array_reverse call on the templateRootPaths setting or break out of the loop on the first found template.

TCPDF ERROR: Unable to create output file: /tmp/tempfile.pdf | tcpdf_static.php line 1854

I love your extentions cart, cart_paypal and i would like to extend these with your cart_pdf extention (tcpdf included) but i get this problem:

FE Error:
TCPDF ERROR: Unable to create output file: /tmp/tempfile.pdf

Relativ directory here seems to be ok, but Systemlog shows this:

SystemLog of Typo3:
Core: Error handler (FE): PHP Warning: fopen**(file:///tmp/tempfile.pdf)**: failed to open stream:

Operation not permitted in /var/www/virtual/mydomain.de/htdocs/typo3conf/ext/tcpdf/Resources/Private/Library/tcpdf/include/tcpdf_static.php line 1854

Core: Error handler (FE): PHP Warning: fopen**(file:///tmp/tempfile.pdf)**: failed to open stream:

Operation not permitted in /var/www/virtual/mydomain.de/htdocs/typo3conf/ext/tcpdf/Resources/Private/Library/tcpdf/include/tcpdf_static.php line 1854

Typo3 v. 8.7.8
PHP v. 7.1.5
MySQL v. 5.5.57
Multidomainsetup

Update - my workaround:

FILE: \cart_pdf\Classes\Service\PdfService.php
DEL LINE 291: $pdfFilename = '/tmp/tempfile.pdf';
ADD LINE 291: $pdfFilename = 'myfileadminname/tmp/tempfile.pdf';

FILE: tcpdf/Resources/Private/Library/tcpdf/include/tcpdf_static.php
DISABLE LINE 1849 to 1853:
public static function fopenLocal($filename, $mode) {
/**if (strpos($filename, '://') === false) {
$filename = 'file://'.$filename;
} elseif (stream_is_local($filename) !== true) {
return false;
}*/
return fopen($filename, $mode);

Document root path is prepended to absolute path

Method \Extcode\TCPDF\Service\TsTCPDF::renderStandaloneView evaluates file paths into an absolute path, which is then used as the files URL. Method \TCPDF::openHTMLTagHandler checks if a file path starts with the document root and prepends it if not. When having a different web document root than TYPO3 document root, like when using helhum/secure-web, the document root gets prepended to the already absolute path.

The method should check if a file exists, thus check if the path needs to be fixed before trying to actually fix it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.