1

RoR を学習するためのアプリで、添付ファイルの処理方法を確認したいと考えています。ペーパークリップが機能するようになり、ドキュメントのプロパティを取得したいと考えています。では、PDF ファイル (Paperclip を使用して添付) からドキュメント プロパティ (PDF 情報) を取得するにはどうすればよいですか?

1つの方法はコマンドラインを使用することですが、ファイルを取得する方法@annotation.file@document.file? 実際には、これを行うにはファイルを一時フォルダーにダウンロードし、ファイルを削除してクリーンアップする必要があります。ダウンロードせずに詳細を取得するにはどうすればよいですか?

したがって、コントローラーは次のようになります。

def pdf
    @annotation = Annotation.find(params[:id])
    render layout: false
    command = 'pdfinfo @annotation.file'
    no_of_pages = command.split("\n")[-7].split(":").last.strip
end

エラーがスローされます:

nil:NilClass の未定義メソッド `split'

次を使用して注釈ビューに表示します。

<%= @no_of_pages %>

その間[pdfinfo][1]、代替手段として宝石「 」を見ましたが、これをどのように使用しますか?

4

2 に答える 2

2

を使用する代わりに、Linux の組み込みコマンドを使用してgemany の詳細を取得することもできます。pdf以下の Ruby コードを実行用に記述するだけで、すべての詳細を取得できます。例:

Ruby コードでコマンドを実行するlinuxには、そのコマンドを次のように記述します。

def pdf
    @annotation = Annotation.find(params[:id])
    command = `pdfinfo @annotation.file`
    @no_of_pages = command.split("\n")[-7].split(":").last.strip
    render layout: false
end

いいえのようなすべての詳細を取得します。変数のページ数、file_sizeなどcommand。必要なそれぞれの詳細を簡単に取得できます。これがお役に立てば幸いです!!

アップデート

注 : PDF ファイルに適切なパス (ファイルが配置されている正確なディレクトリ) を指定してください。私の場合のように:

command = `pdfinfo /home/hbiyawarwala/Documents/books/Rails-Angular-Postgres-and-Bootstrap.pdf`

2番目に、次のように変数@no_of_pagesをビューで直接使用します

<%= @no_of_pages %>
于 2016-09-14T07:55:01.343 に答える