Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1536)

Unified Diff: chrome/browser/printing/print_job.cc

Issue 2633573002: Add Postscript Printing (Closed)
Patch Set: Merge Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/printing/print_job.cc
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
index 294fcb19718fc58e4529478a7b94bd0eca9f45e0..5f616b42d859b960ddc771631383528806905cb1 100644
--- a/chrome/browser/printing/print_job.cc
+++ b/chrome/browser/printing/print_job.cc
@@ -224,20 +224,18 @@ PrintedDocument* PrintJob::document() const {
#if defined(OS_WIN)
class PrintJob::PdfConversionState {
public:
- PdfConversionState(gfx::Size page_size,
- gfx::Rect content_area,
- std::unique_ptr<PdfConverter> converter)
+ PdfConversionState(gfx::Size page_size, gfx::Rect content_area)
: page_count_(0),
current_page_(0),
pages_in_progress_(0),
page_size_(page_size),
- content_area_(content_area),
- converter_(std::move(converter)) {}
+ content_area_(content_area) {}
void Start(const scoped_refptr<base::RefCountedMemory>& data,
const PdfRenderSettings& conversion_settings,
const PdfConverter::StartCallback& start_callback) {
- converter_->Start(data, conversion_settings, start_callback);
+ converter_ = PdfConverter::StartPdfConverter(
+ data, conversion_settings, start_callback);
}
void GetMorePages(const PdfConverter::GetPageCallback& get_page_callback) {
@@ -281,16 +279,14 @@ void PrintJob::StartPdfToEmfConversion(
bool print_text_with_gdi) {
DCHECK(!pdf_conversion_state_);
pdf_conversion_state_ =
- base::MakeUnique<PdfConversionState>(page_size, content_area,
- PdfConverter::CreatePdfToEmfConverter());
+ base::MakeUnique<PdfConversionState>(page_size, content_area);
const int kPrinterDpi = settings().dpi();
PdfRenderSettings settings(
- content_area, kPrinterDpi, /*autorotate=*/true,
+ content_area, gfx::Point(0,0), kPrinterDpi, /*autorotate=*/true,
print_text_with_gdi ? PdfRenderSettings::Mode::GDI_TEXT
: PdfRenderSettings::Mode::NORMAL);
pdf_conversion_state_->Start(
- bytes, settings,
- base::Bind(&PrintJob::OnPdfConversionStarted, this));
+ bytes, settings, base::Bind(&PrintJob::OnPdfConversionStarted, this));
}
void PrintJob::OnPdfConversionStarted(int page_count) {
@@ -323,6 +319,23 @@ void PrintJob::OnPdfPageConverted(int page_number,
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());
+ 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) {
« no previous file with comments | « chrome/browser/printing/print_job.h ('k') | chrome/browser/printing/print_preview_pdf_generated_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698