diff --git a/lib/chromium/pdf.rb b/lib/chromium/pdf.rb index 7e4f9b5..9fce00b 100644 --- a/lib/chromium/pdf.rb +++ b/lib/chromium/pdf.rb @@ -38,10 +38,15 @@ def generate_pdf!(unescaped_filename, print_url, arguments: DEFAULT_CHROME_ARGUM def chrome_print(chrome_path, print_url, filename, filepath, arguments, &block) Kernel.system("LD_PRELOAD='' #{chrome_path} --print-to-pdf='#{filepath}' #{arguments.join(' ')} #{print_url}") + sleep 0.1 until file_created?(filepath) File.open(filepath) do |file| block&.call(file, filename) end end + + def file_created?(filepath) + File.exist?(filepath) && File.size(filepath).positive? + end end end diff --git a/test/jobs/test_generate_pdf_job.rb b/test/jobs/test_generate_pdf_job.rb index cccdf25..4d48d2f 100644 --- a/test/jobs/test_generate_pdf_job.rb +++ b/test/jobs/test_generate_pdf_job.rb @@ -6,4 +6,8 @@ class TestGeneratePdfJob def perform(filename, url) generate_pdf!(filename, url) end + + def file_created?(...) + true + end end