質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

0回答

890閲覧

pdf-libで日本語テキスト入力実装で、TypeError: fontkit.create is not a function のエラーが出る

ganec

総合スコア1

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2023/05/10 13:05

編集2023/05/10 13:08

実現したいこと

pdf-libで、日本語テキストをPDFに書き込みたい

前提

TypeScriptでPDFを編集できるアプリを作っています。
下記サイトを参考に、日本語でのテキスト入力実装中に、以下のエラーが発生しました。
https://symfoware.blog.fc2.com/blog-entry-2597.html

発生している問題・エラーメッセージ

Unhandled Runtime Error TypeError: fontkit.create is not a function > const customFont = await pdfDoc.embedFont(font, { subset: true });

該当のソースコード

import { CircularProgress } from "@mui/material"; import { PDFDocument } from "pdf-lib"; import React, { useEffect, useState } from "react"; const fontkit = require('@pdf-lib/fontkit'); export default function PaperPDF() { // pdf-libでのPDF表示 const [pdfUri, setPdfUri] = useState<string | null>(null); useEffect(() => { async function showPDF() { const url = "/paper.pdf"; const pdfBytes = await fetch(url).then((res) => res.arrayBuffer()); const pdfDoc = await PDFDocument.load(pdfBytes); // 日本語対応・フォントを追加 const font = await fetch('/MPLUS1p-Light.ttf').then(res => res.arrayBuffer()); if (!font) return pdfDoc.registerFontkit(fontkit) const customFont = await pdfDoc.embedFont(font, { subset: true }); const pages = pdfDoc.getPages(); const page = pages[0]; // 日付 page.drawText("12", { x: 10, y: 300, size: 10, font: customFont }); page.drawText("31", { x: 50, y: 300, size: 10, font: customFont }); page.drawText("月", { x: 100, y: 300, size: 10, font: customFont }); const dataUri = await pdfDoc.saveAsBase64({ dataUri: true }); setPdfUri(dataUri); } showPDF(); }, []); if (pdfUri === null) return <CircularProgress />; return <iframe src={pdfUri} style={{ width: "100%", height: 500 }} />; }

試したこと

下記サイトを参考に、react-pdfをinstall
https://stackoverflow.com/questions/73543912/attempted-import-error-create-is-not-exported-from-fontkit-imported-as-fo

補足情報(FW/ツールのバージョンなど)

"@pdf-lib/fontkit": "^1.1.1", "@react-pdf/font": "2.2.1", "@react-pdf/pdfkit": "2.1.0",

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2023/05/12 14:45

fontkit も require ではなく import すれば良いのでは…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問