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

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

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PDF

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

5回答

4571閲覧

Web上で動的にPDFを生成するシステムの作り方

maztak

総合スコア61

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PDF

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

3クリップ

投稿2018/07/02 14:28

ご覧いただきありがとうございます。たまに質問させてもらっております。

背景

知人から「Web上で選択した複数の製品画像を、結合してPDFの図面として出力できないか?」と相談を受けました。しかしネットで調べてもPDF結合・出力の技術やコードの情報が出てきません。PHPやJavaScriptを使用するのかなと思うのですが。。

概要

例えばWeb上でプルダウンなどで4個ほどの製品を選択して、「出力」ボタンを押すと、それらに対応した画像、名称、仕様などが、あらかじめ用意した箇所に挿入され、それをPDFなどで出力できるシステムの開発を考えております。

製品の画像がそれぞれ違い、4つの製品を組み立てた完成図を出力したいとのこと。

また用意しておく画像や製品情報を、WordPressのような管理画面で管理できるのがベストです。
・ログインすれば登録製品の編集・削除ができる
・出力自体はWeb上で誰でも利用できる形

懸念点

HTML/CSS、WordPress、PHPを多少と、Swiftの知見があるのですが、PDFの作成・出力の技術がイメージできずです。

知りたいこと

①どのような技術が必要なのでしょうか?(言語、DB、WordPressで管理可能か等)
②費用と工数的にどのくらいかかるものなのか?
③個人で請け負うには規模が大きいレベルでしょうか?
④またセキュリティ的にVPNなどの技術が必要でしょうか?(できれば避けたく)

知見のある方、もしよければご教授いただけますと幸いにございます。

DrqYuto👍を押しています

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

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

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

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

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

guest

回答5

0

①どのような技術が必要なのでしょうか?(言語、DB、WordPressで管理可能か等)

PHP + TCPDFとかライブラリを使用する。

②費用と工数的にどのくらいかかるものなのか?

質問の内容からは算出不能。

③個人で請け負うには規模が大きいレベルでしょうか?

個人でも、相応の時間があれば可能。

④またセキュリティ的にVPNなどの技術が必要でしょうか?(できれば避けたく)

WordPressおよび本件とは無関係な事柄と思います。そうせざるを得ないこともあるかもしれませんが、質問文の内容からは判断できません。

投稿2018/07/02 14:33

編集2018/07/02 14:44
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

先の回答にもありますが、PHP + TCPDFが良いと思います。

https://tcpdf.org/examples/

製品や画像がデータ化されているなら動的出力も可能と思います。自分はTCPDFを用いて、Smarty + CSSと組み合わせて、社ロゴと印影画像 + Table表組みで請求明細を出力したことがあります。ExcelやWordに引けを取らない出来栄えでした。

WordPressにそのようなプラグインがあるかは、すみません、わかりません。

内容にもよりますが、単に並べるだけ、というわけではないでしょうから、顧客に満足してもらう出来栄えまでに、慣れていても2日は掛かると思います。

なので、全然個人で請け負えるのではと思います。

VPNは関係ないと思います。

参考になれば幸いです。

投稿2018/07/02 15:25

編集2018/07/02 15:29
SaintKnowledge

総合スコア368

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

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

maztak

2018/07/03 15:24

素早い回答、多彩なライブラリの提案、皆様ありがとうございました。 一通り見て見ましたが、やはりPHP + TCPDFが良さそうなので、詳細や具体例を挙げていただいたSaintKnowledge様をベストアンサーとさせて頂きました。 改めてエンジニアの知識共有や助け合いの素晴らしさを実感しました。自分もよりIT界に貢献できるエンジニアになっていきたいと思います。ありがとうございました!
guest

0

クライアントサイドでPDF作成するjavascriptライブラリーが有ります。
pdfmake

どんな感じかは以下でお試し。
playground
図の上に文字を埋め込むとか・・・出来るのかなぁ?

日本語を扱ったりするためのノウハウは以下を見るといいです。
http://kougeisya.biz/programming/385/
https://www.tam-tam.co.jp/tipsnote/javascript/post11710.html

あと、html2canvasなるライブラリーが有ります。
canvasに文字や画像を貼り付けてhtml2canvasで画像にして、画像としてPDF作成する手も有ります…が、文字情報は失われるので使い勝手は良くないと思います。

投稿2018/07/02 15:03

oikashinoa

総合スコア2826

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

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

0

  • 使いやすいツールとして「wkhtmltopdf」というツールがあります。このツールで、HTMLとして作成したものを(もちろん画像をいれてCSSによるスタイル調整もできます。)PDFとして作成し、ダウンロードさせることも可能です。

  • まずは、サーバー側に上記をインストールする必要があります。その上で、phpからこのツールを利用するには、このようなライブラリがあるようです: https://github.com/mikehaertl/phpwkhtmltopdf

  • ミドルウェアのセットアップに慣れていれば時間はそんなに必要ありませんが(自分なら、一通り実装に5時間ほど?)その辺りで詰まるとかなり時間を要するかもしれませんね。

投稿2018/07/02 14:47

編集2018/07/02 14:50
mats0228

総合スコア219

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

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

0

頂いた情報まとめ

●PHP + TCPDF https://tcpdf.org/examples/
製品や画像がデータ化されているなら動的出力も可能と思われ。
例)TCPDF +Smarty + CSSと組み合わせて、社ロゴと印影画像 + Table表組みで請求明細を出力など。

参考: https://qiita.com/emegane/items/486975a79ebb267c2b8e
GitHub: https://github.com/tecnickcom/tcpdf
Smartyとは: https://web-camp.io/magazine/archives/4940

●pdfmake(JavaScript) http://pdfmake.org/#/gettingstarted
クライアントサイドでPDF作成するjavascriptライブラリー
http://pdfmake.org/playground.html
http://kougeisya.biz/programming/385/
https://www.tam-tam.co.jp/tipsnote/javascript/post11710.html

●wkhtmltopdf https://wkhtmltopdf.org/
HTMLとして作成したものをPDFとして作成し、ダウンロードさせることも可能。
①サーバー側に上記をインストールする必要があります。
②phpからこのツールを利用するためにphpwkhtmltopdfを使用
https://github.com/mikehaertl/phpwkhtmltopdf
※ミドルウェアのセットアップに最低5h~
これも良さそうですね。

投稿2018/07/03 15:39

編集2018/07/03 15:50
maztak

総合スコア61

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

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

退会済みユーザー

退会済みユーザー

2018/07/03 15:43

> TCPDF +Smarty + CSSと組み合わせ とありますが、PDF出力のためにSmartyを利用というのはなくはないが、メリットもないと思います。
maztak

2018/07/03 15:46

早速反応ありがとうございます。 Smarty使わず、PHPとTCPDFだけで完結できそうな感じですか?
退会済みユーザー

退会済みユーザー

2018/07/03 15:55 編集

SmartyとはHTMLをテンプレート化するものであってPDFに無関係です。回答者はシステム全体の構成要件としてあげたのかもしれませんが、PDF出力機能にSmartyを使っているとは考えにくいです。 HTML→PDFに変換するならTCPDFより、mPDFの方がより使いやすいと言われています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問