Chromium Code Reviews| Index: chrome/browser/printing/print_job.cc |
| diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc |
| index b00ee4829a53a375dc744e2d803b015a4c737f67..5b33aa4048eaefcd8943369cd4e1591568b51e8e 100644 |
| --- a/chrome/browser/printing/print_job.cc |
| +++ b/chrome/browser/printing/print_job.cc |
| @@ -236,10 +236,8 @@ class PrintJob::PdfConversionState { |
| void Start(const scoped_refptr<base::RefCountedMemory>& data, |
| const PdfRenderSettings& conversion_settings, |
| - bool print_text_with_gdi, |
| const PdfConverter::StartCallback& start_callback) { |
| - converter_->Start(data, conversion_settings, print_text_with_gdi, |
| - start_callback); |
| + converter_->Start(data, conversion_settings, start_callback); |
| } |
| void GetMorePages(const PdfConverter::GetPageCallback& get_page_callback) { |
| @@ -282,14 +280,18 @@ void PrintJob::StartPdfToEmfConversion( |
| const gfx::Rect& content_area, |
| bool print_text_with_gdi) { |
| DCHECK(!pdf_conversion_state_); |
| + |
| pdf_conversion_state_ = |
| base::MakeUnique<PdfConversionState>(page_size, content_area, |
| PdfConverter::CreatePdfToEmfConverter()); |
| + is_postscript_ = false; |
| const int kPrinterDpi = settings().dpi(); |
| - PdfRenderSettings settings(content_area, kPrinterDpi, true /* autorotate? */); |
| + PdfRenderSettings settings( |
| + content_area, gfx::Point(0, 0), kPrinterDpi, true /* autorotate? */, |
| + print_text_with_gdi ? PdfRenderSettings::Mode::GDI_TEXT |
| + : PdfRenderSettings::Mode::NORMAL); |
| pdf_conversion_state_->Start( |
| - bytes, settings, print_text_with_gdi, |
| - base::Bind(&PrintJob::OnPdfConversionStarted, this)); |
| + bytes, settings, base::Bind(&PrintJob::OnPdfConversionStarted, this)); |
| } |
| void PrintJob::OnPdfConversionStarted(int page_count) { |
| @@ -315,13 +317,33 @@ void PrintJob::OnPdfPageConverted(int page_number, |
| } |
| // Update the rendered document. It will send notifications to the listener. |
| - document_->SetPage(pdf_page_mapping_[page_number], std::move(metafile), |
| - scale_factor, pdf_conversion_state_->page_size(), |
| - pdf_conversion_state_->content_area()); |
| + document_->SetPage( |
| + pdf_page_mapping_[page_number], std::move(metafile), |
| + is_postscript_ ? 0.0f : scale_factor, |
|
Vitaly Buka (NO REVIEWS)
2017/01/27 00:38:49
I guess better to remove conditiond and just use
s
rbpotter
2017/01/27 16:37:21
Done.
|
| + is_postscript_ ? gfx::Size() : pdf_conversion_state_->page_size(), |
| + is_postscript_ ? gfx::Rect() : pdf_conversion_state_->content_area()); |
|
Vitaly Buka (NO REVIEWS)
2017/01/27 00:38:49
why do you need condition here?
PdfConversionState
rbpotter
2017/01/27 16:37:21
Done.
|
| pdf_conversion_state_->GetMorePages( |
| base::Bind(&PrintJob::OnPdfPageConverted, this)); |
| } |
| + |
| +void PrintJob::StartPdfToPostScriptConversion( |
| + const scoped_refptr<base::RefCountedMemory>& bytes, |
| + const gfx::Rect& content_area, |
| + const gfx::Point& physical_offsets, |
| + bool ps_level2) { |
| + DCHECK(!pdf_conversion_state_); |
| + pdf_conversion_state_ = base::MakeUnique<PdfConversionState>( |
| + gfx::Size(), gfx::Rect(), PdfConverter::CreatePdfToPostScriptConverter()); |
| + is_postscript_ = true; |
|
Vitaly Buka (NO REVIEWS)
2017/01/27 00:38:49
looks like is_postscript_ can be removed
rbpotter
2017/01/27 16:37:21
Done.
|
| + const int kPrinterDpi = settings().dpi(); |
| + PdfRenderSettings settings( |
| + content_area, physical_offsets, kPrinterDpi, true /* autorotate? */, |
| + ps_level2 ? PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2 |
| + : PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3); |
| + pdf_conversion_state_->Start( |
| + bytes, settings, base::Bind(&PrintJob::OnPdfConversionStarted, this)); |
| +} |
| #endif // defined(OS_WIN) |
| void PrintJob::UpdatePrintedDocument(PrintedDocument* new_document) { |