从原始PDF字节创建PDF文件

时间:2018-03-13 02:22:03

标签: ruby

我使用Net::HTTP从网上检索pdf文件。当我读取响应时,它显示原始字节:

uri = URI.parse(url_str)
http = Net::HTTP.new(uri.host, uri.port)
http.read_timeout = 10
http.use_ssl = true

request = Net::HTTP::Get.new(uri.path)
request['User-Agent'] = get_user_agent
request['Referer'] = get_referer
request['Cookie'] = get_cookies

response = http.request(request)

response.body
 => "%PDF-1.4\r\n%\xF9\xFA\x9A\xE7\r\n4 0 obj\r\n<<\n/E 377518\n/H [1743 145]\n/L 377862\n/Linearized 1\n/N 1\n/O 8\n/T 377734\n>> ...

我需要一个不是原始字节的文件。我的目标是将其传递给convert命令,将其转换为图像:

convert -verbose -density 300 -trim pdf_file -quality 100 output.png 

所以我尝试将这些字节转换为带有我可以引用的资源ID的pdf文件。但我不确定用于此的实用程序:

IO.copy_stream(response.body, tmp.pdf)
=> ArgumentError: string contains null byte
    from (irb):49:in `copy_stream'

我也试过这个:

Tempfile.new bytes
=> ArgumentError: string contains null byte

我也试过这个:

 f = File.binread(bytes)
=> ArgumentError: string contains null byte

他们都给出了同样的错误。为什么会出现这种错误?

0 个答案:

没有答案