From 9570972571f0d65338586a5ee721c4d17609107a Mon Sep 17 00:00:00 2001 From: Kazuki Maeda Date: Sat, 1 Apr 2023 00:48:32 +0900 Subject: [PATCH] [MM-46941] Fix: PDF preview doesn't render some Japanese characters (#22599) Co-authored-by: Mattermost Build --- webapp/channels/src/components/pdf_preview.jsx | 8 +++++++- webapp/channels/webpack.config.js | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/webapp/channels/src/components/pdf_preview.jsx b/webapp/channels/src/components/pdf_preview.jsx index 0516f4a6aa..215ea99c6d 100644 --- a/webapp/channels/src/components/pdf_preview.jsx +++ b/webapp/channels/src/components/pdf_preview.jsx @@ -10,6 +10,8 @@ import {getFileDownloadUrl} from 'mattermost-redux/utils/file_utils'; import LoadingSpinner from 'components/widgets/loading/loading_spinner'; import FileInfoPreview from 'components/file_info_preview'; +import {getSiteURL} from 'utils/url'; + const INITIAL_RENDERED_PAGES = 3; export default class PDFPreview extends React.PureComponent { @@ -149,7 +151,11 @@ export default class PDFPreview extends React.PureComponent { const worker = await import('pdfjs-dist/build/pdf.worker.entry.js'); PDFJS.GlobalWorkerOptions.workerSrc = worker; - const pdf = await PDFJS.getDocument(this.props.fileUrl).promise; + const pdf = await PDFJS.getDocument({ + url: this.props.fileUrl, + cMapUrl: getSiteURL() + '/static/cmaps/', + cMapPacked: true, + }).promise; this.onDocumentLoad(pdf); } catch (err) { this.onDocumentLoadError(err); diff --git a/webapp/channels/webpack.config.js b/webapp/channels/webpack.config.js index c0572b63ff..911550300f 100644 --- a/webapp/channels/webpack.config.js +++ b/webapp/channels/webpack.config.js @@ -217,6 +217,7 @@ var config = { {from: 'src/images/cloud-laptop-error.png', to: 'images'}, {from: 'src/images/cloud-laptop-warning.png', to: 'images'}, {from: 'src/images/cloud-upgrade-person-hand-to-face.png', to: 'images'}, + {from: '../node_modules/pdfjs-dist/cmaps', to: 'cmaps'}, ], }),