mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 08:26:37 +02:00
MDL-76273 core: multi-byte character filename support for TCPDF.
See: https://github.com/tecnickcom/TCPDF/pull/562
This commit is contained in:
parent
bdba78514f
commit
ef9310d1e7
2 changed files with 7 additions and 7 deletions
|
@ -6,6 +6,7 @@ Description of TCPDF library import 6.3.5
|
|||
* remove all fonts that were not already present
|
||||
* visit http://127.0.0.1/lib/tests/other/pdflibtestpage.php and view the pdf
|
||||
* modify getTCPDFProducer lib/tcpdf/include/tcpdf_static.php to remove the version number
|
||||
* modify `TCPDF::Output` method for multi-byte character filename support (see https://github.com/tecnickcom/TCPDF/pull/562)
|
||||
|
||||
Important
|
||||
---------
|
||||
|
|
|
@ -7604,7 +7604,7 @@ class TCPDF {
|
|||
* Send the document to a given destination: string, local file or browser.
|
||||
* In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.<br />
|
||||
* The method first calls Close() if necessary to terminate the document.
|
||||
* @param $name (string) The name of the file when saved. Note that special characters are removed and blanks characters are replaced with the underscore character.
|
||||
* @param $name (string) The name of the file when saved
|
||||
* @param $dest (string) Destination where to send the document. It can take one of the following values:<ul><li>I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.</li><li>D: send to the browser and force a file download with the name given by name.</li><li>F: save to a local server file with the name given by name.</li><li>S: return the document as a string (name is ignored).</li><li>FI: equivalent to F + I option</li><li>FD: equivalent to F + D option</li><li>E: return the document as base64 mime multi-part email attachment (RFC 2045)</li></ul>
|
||||
* @return string
|
||||
* @public
|
||||
|
@ -7622,10 +7622,7 @@ class TCPDF {
|
|||
$dest = $dest ? 'D' : 'F';
|
||||
}
|
||||
$dest = strtoupper($dest);
|
||||
if ($dest[0] != 'F') {
|
||||
$name = preg_replace('/[\s]+/', '_', $name);
|
||||
$name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);
|
||||
}
|
||||
|
||||
if ($this->sign) {
|
||||
// *** apply digital signature to the document ***
|
||||
// get the document content
|
||||
|
@ -7696,7 +7693,8 @@ class TCPDF {
|
|||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Content-Disposition: inline; filename="'.basename($name).'"');
|
||||
header('Content-Disposition: inline; filename="' . rawurlencode(basename($name)) . '"; ' .
|
||||
'filename*=UTF-8\'\'' . rawurlencode(basename($name)));
|
||||
TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen);
|
||||
} else {
|
||||
echo $this->getBuffer();
|
||||
|
@ -7727,7 +7725,8 @@ class TCPDF {
|
|||
header('Content-Type: application/pdf');
|
||||
}
|
||||
// use the Content-Disposition header to supply a recommended filename
|
||||
header('Content-Disposition: attachment; filename="'.basename($name).'"');
|
||||
header('Content-Disposition: attachment; filename="' . rawurlencode(basename($name)) . '"; ' .
|
||||
'filename*=UTF-8\'\'' . rawurlencode(basename($name)));
|
||||
header('Content-Transfer-Encoding: binary');
|
||||
TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen);
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue