附有 Paperclip 的 PDF - 获取文档属性(如页数)
PDF attached with Paperclip - get document properties (like page count)
在我学习 RoR 的应用程序中,我想看看如何处理附件。让回形针工作并想要获取文档属性。那么,如何从 pdf 文件(使用 Paperclip 附加)中获取文档属性(PDF 信息)?
一种方法是使用命令行,但如何获取文件(此处 @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
它抛出一个错误:
undefined method `split' for nil:NilClass
我使用以下方法将其添加到我的注释视图中:
<%= @no_of_pages %>
同时我查看了 gem“[pdfinfo][1]
”作为替代方案,但如何使用它?
使用 gem
的替代方法,您还可以使用 linux 的内置命令获取任何 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
你会得到所有的细节,就像没有。 command
变量中的页数、file_size 等。
您可以轻松获取所需的相应详细信息。
希望对您有所帮助!!
UPDATE
注意:为您的 pdf 文件提供正确的路径,即文件所在的确切目录。就像我的情况一样:
command = `pdfinfo /home/hbiyawarwala/Documents/books/Rails-Angular-Postgres-and-Bootstrap.pdf`
第二件事是,在您的视图中直接使用变量 @no_of_pages
,例如
<%= @no_of_pages %>
简单的解决方案L使用PDFINFO gem;效果很好
在我学习 RoR 的应用程序中,我想看看如何处理附件。让回形针工作并想要获取文档属性。那么,如何从 pdf 文件(使用 Paperclip 附加)中获取文档属性(PDF 信息)?
一种方法是使用命令行,但如何获取文件(此处 @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
它抛出一个错误:
undefined method `split' for nil:NilClass
我使用以下方法将其添加到我的注释视图中:
<%= @no_of_pages %>
同时我查看了 gem“[pdfinfo][1]
”作为替代方案,但如何使用它?
使用 gem
的替代方法,您还可以使用 linux 的内置命令获取任何 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
你会得到所有的细节,就像没有。 command
变量中的页数、file_size 等。
您可以轻松获取所需的相应详细信息。
希望对您有所帮助!!
UPDATE
注意:为您的 pdf 文件提供正确的路径,即文件所在的确切目录。就像我的情况一样:
command = `pdfinfo /home/hbiyawarwala/Documents/books/Rails-Angular-Postgres-and-Bootstrap.pdf`
第二件事是,在您的视图中直接使用变量 @no_of_pages
,例如
<%= @no_of_pages %>
简单的解决方案L使用PDFINFO gem;效果很好