teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記3

2021/07/11 23:55

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -128,4 +128,9 @@
128
128
 
129
129
  使い方はご自分で調べてください。
130
130
 
131
- このPDF出力がネックで、それさえできればクライアントサイドでも可能です。
131
+ このPDF出力がネックで、それさえできればクライアントサイドでも可能です。
132
+
133
+ -----
134
+ [追記3]
135
+
136
+ ヒント: [過去回答](https://teratail.com/questions/348395#reply-477662)

2

追記2

2021/07/11 23:55

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -89,4 +89,43 @@
89
89
  なので定義によりますね。
90
90
 
91
91
  このteratailやWikipediaとかのような感じで1人が編集すれば他の人が見ているものも編集される……というのならどうしてもサーバを立てて、バックエンドで操作……しかありません。
92
- (一応デスクトップでもできるが……)
92
+ (一応デスクトップでもできるが……)
93
+
94
+ ------------
95
+
96
+ [追記2]
97
+
98
+ > 実際に一度コードができれば変更する予定はありません。
99
+ そして、ユーザーには単純に必要項目と画像をinput要素で記入してもらい、保存機能として個人のフォルダにpdfとして保存できるようなシステムを作ることが理想です。
100
+ なのでjsのみで構築可能ということでしょうか?
101
+ 何度も質問してしまい申し訳ございません。。。
102
+
103
+ 質問の追加自体は問題ありませんよ。
104
+ まったく別の内容だと困りますが。(JavaScriptのネタなのにGoの実装レベルの質問を追加でするとかは困りますが)
105
+
106
+ 一応関係あるというか、かなり関係しているので。
107
+
108
+ えーっと、『必要項目』とはなんでしょうか。
109
+ たとえば『どのデータを抽出したいか』とかであればJavaScriptでもできます。
110
+ でも、『編集したいデータ』とかのようなものはちょっときついですね。
111
+ (場合によってはできないし)
112
+
113
+ PDFとして出力……ですか。
114
+
115
+ これは単純なJavaScriptでは出来ませんね。
116
+
117
+ もしかしたら外部ライブラリとして、存在するかもしれません。
118
+
119
+ なんとなくJavaScriptでは出来なさそうと思ったので、とりあえずjQueryとして考えて調べてみました。
120
+
121
+ キーワード:『jQuery PDF 出力』
122
+
123
+ そうすると、[ここ](https://www.tam-tam.co.jp/tipsnote/javascript/post11710.html) がヒットしました。
124
+
125
+ あー、一応JavaScriptでもできますね。
126
+
127
+ ただし、外部ライブラリとして『pdfmake』ってのが必要らしいですが。
128
+
129
+ 使い方はご自分で調べてください。
130
+
131
+ このPDF出力がネックで、それさえできればクライアントサイドでも可能です。

1

追記1

2021/07/11 09:09

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -21,4 +21,72 @@
21
21
  デスクトップアプリで、『ファイルの読み書き』で実現できそうです。
22
22
 
23
23
  いずれにしても、フロントエンドだけで、
24
- データ管理はできません。
24
+ データ管理はできません。
25
+
26
+ -------------
27
+
28
+ [追記1]
29
+
30
+ (返信にて)
31
+ > データベースを使用するということは理解できました。
32
+ 私の認識が正しいかどうか判断していただきたいです。
33
+ アーティストのプロフィール情報をデータベースのテーブルに蓄積する必要がないため、
34
+ テーブルにマイグレーションするアクションはつけなくてもいいが、
35
+ 個人で保存できるようなアクションのシステムは構築する必要がある。
36
+ このようなニュアンスでしょうか?
37
+
38
+ 必ずDBを使うというより、フローを考えると『必要そうだな』ってことです。
39
+
40
+ たとえば、質問者さんがプロダクトの提供者(制作サイドとか)だとして考えてみますね。
41
+
42
+ 提供者である質問者さんが全てのデータを知っていて、HTMLとかにベタ書きするなら、
43
+ つまり昔風のホームページみたいにするなら、DBは必要ありません。
44
+
45
+ 単にHTMLなりPHPなりJavaScriptなりにベタ書きすればいいだけです。
46
+
47
+ たとえば問題集とかのような感じで、問題文と回答が完全固定のやつならベタ書きすればいい感じで。
48
+
49
+ でも実際には追加したり削除したり編集したりとかの『編集』をするはずです。
50
+
51
+ 問題集的なものであれば、ユーザが追加するか、毎月更新されるとか。
52
+ そういう場合はデータを保持しておくことと編集ができることが求められます。
53
+
54
+ でもHTMLは単にテキストにメタ情報を付与するだけです。
55
+ 『ここで改行』『ここからここまでをひと段落とする』とかのような感じの。
56
+ (イメージ的にはドラマとかを作る時の『台本』での「ここで○○にウインクする」とかのようなアレ)
57
+
58
+ JavaScriptはデータの編集や動的にサイトを見せるのはできますが、データ保存が出来ません。
59
+
60
+ ではこのteratailやAm*zonとかのようなWebアプリはどのようにデータを保持しているのでしょうか。
61
+
62
+ そこでバックエンドの登場です。
63
+
64
+ サーバを立ててPHPなりRubyなりを介してDBを操作してデータを保持したり取り出したりする。
65
+
66
+ それで、単に完全固定でベタ書きできる仕様ならDBはおろか、バックエンドすらいりません。
67
+ (『外部ライブラリを使う』とかみたいに、ある条件が付けば別だけど)
68
+
69
+ でもこのteratailとかみたいにユーザが入力したものを保持したり修正したりとかの管理をするならどうしてもDBが必要です。
70
+
71
+ なので『**仕様に因る**』ですね。
72
+
73
+ もし、ポ○モンの初期のやつみたい数がそこまで多くなくてベタ書きできそうならJavaScriptとかだけでもなんとかなりそうです。
74
+
75
+ でもその場合は後から追加するとかだけでも相当面倒です。
76
+
77
+ たとえば配列で保持しているとしたら、C言語とかみたいに配列の要素数を指定する言語であれば
78
+ 要素数も書き換えないといけないし、
79
+ 追加する場所(末尾なのか先端なのか、中央なのかそれ以外なのか……)とかによっては、
80
+ ロジックの整合性を取らないといけないので……
81
+
82
+ JavaScriptとかみたいに、動的に要素数が変わるタイプの言語であれば要素数の書き換えはそこまで必要じゃないですが、ロジックの整合性を取らないといけないし。
83
+ (仕様や組み方による)
84
+
85
+ どうしても『持ち運びができる』等のように単体でやるという条件で、データを追加したりとかの編集とかが必要と言うのなら、Webよりもデスクトップアプリの方が無難です。
86
+
87
+ 持ち運びはするが、データが完全固定ならJavaScriptとかでベタ書きすれば十分です。
88
+
89
+ なので定義によりますね。
90
+
91
+ このteratailやWikipediaとかのような感じで1人が編集すれば他の人が見ているものも編集される……というのならどうしてもサーバを立てて、バックエンドで操作……しかありません。
92
+ (一応デスクトップでもできるが……)