首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将.doc或.pdf转换为图像并在Ruby中显示缩略图?

将.doc或.pdf转换为图像并在Ruby中显示缩略图,可以通过以下步骤实现:

  1. 安装必要的库

首先,需要安装以下库:

  • ruby-poppler:用于将PDF文件转换为图像
  • rmagick:用于将图像处理为缩略图
  • docx:用于将.docx文件转换为图像

可以使用以下命令安装这些库:

代码语言:txt
复制
gem install ruby-poppler
gem install rmagick
gem install docx
  1. 将PDF文件转换为图像

使用ruby-poppler库将PDF文件转换为图像:

代码语言:ruby
复制
require 'poppler'

pdf_file = Poppler::Document.new('path/to/your/file.pdf')
pdf_file.each_page do |page|
  page.save_as('path/to/save/image.png')
end
  1. 将.doc或.docx文件转换为图像

使用docx库将.doc或.docx文件转换为图像:

代码语言:ruby
复制

require 'docx'

docx_file = Docx::Document.open('path/to/your/file.docx')

docx_file.each_paragraph do |paragraph|

paragraph.each_run do |run|

代码语言:txt
复制
run.each_text_run do |text_run|
代码语言:txt
复制
  text_run.each_fragment do |fragment|
代码语言:txt
复制
    fragment.each_line do |line|
代码语言:txt
复制
      line.each_fragment do |fragment|
代码语言:txt
复制
        fragment.each_text_run do |text_run|
代码语言:txt
复制
          text_run.each_fragment do |fragment|
代码语言:txt
复制
            fragment.each_line do |line|
代码语言:txt
复制
              line.each_fragment do |fragment|
代码语言:txt
复制
                fragment.each_text_run do |text_run|
代码语言:txt
复制
                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                    fragment.each_line do |line|
代码语言:txt
复制
                      line.each_fragment do |fragment|
代码语言:txt
复制
                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                            fragment.each_line do |line|
代码语言:txt
复制
                              line.each_fragment do |fragment|
代码语言:txt
复制
                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                    fragment.each_line do |line|
代码语言:txt
复制
                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                            fragment.each_line do |line|
代码语言:txt
复制
                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                                                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                                                                                      line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                        fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                                                          text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                            fragment.each_line do |line|
代码语言:txt
复制
                                                                                                                                              line.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                                fragment.each_text_run do |text_run|
代码语言:txt
复制
                                                                                                                                                  text_run.each_fragment do |fragment|
代码语言:txt
复制
                                                                                                                                                    fragment.each_line do |line|
代码语言:txt
复制
                                                                                                                                                      line.each_fragment
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • word转出图片(使用免费插件)02

    /**      * 将word文档, 转换成pdf, 中间替换掉变量      * @param source 源为word文档, 必须为docx文档      * @param target 目标输出      * @param params 需要替换的变量      * @throws Exception      */     public static void wordConverterToPdf(InputStream source,                                           OutputStream target, Map<String, String> params) throws Exception {         wordConverterToPdf(source, target, null, params);     }     /**      * 将word文档, 转换成pdf, 中间替换掉变量      * @param source 源为word文档, 必须为docx文档      * @param target 目标输出      * @param params 需要替换的变量      * @param options PdfOptions.create().fontEncoding( "windows-1250" ) 或者其他      * @throws Exception      */     public static void wordConverterToPdf(InputStream source, OutputStream target,                                           PdfOptions options,                                           Map<String, String> params) throws Exception {         //HWPFDocument doc=new HWPFDocument(source);         XWPFDocument doc = new XWPFDocument(source);         paragraphReplace(doc.getParagraphs(), params);         for (XWPFTable table : doc.getTables()) {             for (XWPFTableRow row : table.getRows()) {                 for (XWPFTableCell cell : row.getTableCells()) {                     paragraphReplace(cell.getParagraphs(), params);                 }             }         }         PdfConverter.getInstance().convert(doc, target, options);     }     /** 替换段落中内容 */     private static void paragraphReplace(List<XWPFParagraph> paragraphs, Map<String, String> params) {         if (MapUtils.isNotEmpty(params)) {             for (XWPFParagraph p : paragraphs){                 for (XWPFRun r : p.getRuns()){                     String content = r.getText(r.getTextPosition());                     if(StringUtils.isNotEmpty(content) && params.containsKey(content)) {                         r.setText(params.get(content), 0);                     }                 }             }         }     }

    01

    Linux之convert命令

    强大的convert命令  convert命令可以用来转换图像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPM和XWD等类型,下面举几个例子:    convert  xxx.jpg  xxx.png   将jpeg转成png文件    convert  xxx.gif   xxx.bmp  将gif转换成bmp图像    convert  xxx.tiff    xxx.pcx   将tiff转换成pcx图像  还可以改变图像的大小:    convert -resize 1024×768  xxx.jpg   xxx1.jpg    将图像的像素改为1024*768,注意1024与768之间是小写字母x    convert -sample 50%x50%  xxx.jpg  xxx1.jpg   将图像的缩减为原来的50%*50%  旋转图像:  convert -rotate 270 sky.jpg sky-final.jpg      将图像顺时针旋转270度  使用-draw选项还可以在图像里面添加文字:  convert -fill black -pointsize 60 -font helvetica -draw ‘text 10,80 “Hello, World!” ‘  hello.jpg  helloworld.jpg  在图像的10,80 位置采用60磅的全黑Helvetica字体写上 Hello, World!  convert还有其他很多有趣和强大的功能,大家不妨可以试试。

    01
    领券