Add printToPDF Implementation.
This commit is contained in:
		
					parent
					
						
							
								b360f7d86a
							
						
					
				
			
			
				commit
				
					
						7ffa7042b1
					
				
			
		
					 10 changed files with 1112 additions and 2 deletions
				
			
		|  | @ -46,7 +46,9 @@ struct PrintMsg_Print_Params { | |||
|   int document_cookie; | ||||
|   bool selection_only; | ||||
|   bool supports_alpha_blend; | ||||
|   int preview_request_id; | ||||
|   blink::WebPrintScalingOption print_scaling_option; | ||||
|   bool print_to_pdf; | ||||
|   base::string16 title; | ||||
|   base::string16 url; | ||||
|   bool should_print_backgrounds; | ||||
|  | @ -185,6 +187,61 @@ IPC_STRUCT_BEGIN(PrintHostMsg_ScriptedPrint_Params) | |||
|   IPC_STRUCT_MEMBER(printing::MarginType, margin_type) | ||||
| IPC_STRUCT_END() | ||||
| 
 | ||||
| // Parameters to describe a rendered preview page.
 | ||||
| IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewPage_Params) | ||||
|   // A shared memory handle to metafile data for a draft document of the page.
 | ||||
|   IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle) | ||||
| 
 | ||||
|   // Size of metafile data.
 | ||||
|   IPC_STRUCT_MEMBER(uint32, data_size) | ||||
| 
 | ||||
|   // |page_number| is zero-based and can be |printing::INVALID_PAGE_INDEX| if it
 | ||||
|   // is just a check.
 | ||||
|   IPC_STRUCT_MEMBER(int, page_number) | ||||
| 
 | ||||
|   // The id of the preview request.
 | ||||
|   IPC_STRUCT_MEMBER(int, preview_request_id) | ||||
| IPC_STRUCT_END() | ||||
| 
 | ||||
| // Parameters sent along with the page count.
 | ||||
| IPC_STRUCT_BEGIN(PrintHostMsg_DidGetPreviewPageCount_Params) | ||||
|   // Cookie for the document to ensure correctness.
 | ||||
|   IPC_STRUCT_MEMBER(int, document_cookie) | ||||
| 
 | ||||
|   // Total page count.
 | ||||
|   IPC_STRUCT_MEMBER(int, page_count) | ||||
| 
 | ||||
|   // Indicates whether the previewed document is modifiable.
 | ||||
|   IPC_STRUCT_MEMBER(bool, is_modifiable) | ||||
| 
 | ||||
|   // The id of the preview request.
 | ||||
|   IPC_STRUCT_MEMBER(int, preview_request_id) | ||||
| 
 | ||||
|   // Indicates whether the existing preview data needs to be cleared or not.
 | ||||
|   IPC_STRUCT_MEMBER(bool, clear_preview_data) | ||||
| IPC_STRUCT_END() | ||||
| 
 | ||||
| // Parameters to describe a rendered document.
 | ||||
| IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params) | ||||
|   // A shared memory handle to metafile data.
 | ||||
|   IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle) | ||||
| 
 | ||||
|   // Size of metafile data.
 | ||||
|   IPC_STRUCT_MEMBER(uint32, data_size) | ||||
| 
 | ||||
|   // Cookie for the document to ensure correctness.
 | ||||
|   IPC_STRUCT_MEMBER(int, document_cookie) | ||||
| 
 | ||||
|   // Store the expected pages count.
 | ||||
|   IPC_STRUCT_MEMBER(int, expected_pages_count) | ||||
| 
 | ||||
|   // Whether the preview can be modified.
 | ||||
|   IPC_STRUCT_MEMBER(bool, modifiable) | ||||
| 
 | ||||
|   // The id of the preview request.
 | ||||
|   IPC_STRUCT_MEMBER(int, preview_request_id) | ||||
| IPC_STRUCT_END() | ||||
| 
 | ||||
| 
 | ||||
| // Messages sent from the browser to the renderer.
 | ||||
| 
 | ||||
|  | @ -198,6 +255,12 @@ IPC_MESSAGE_ROUTED2(PrintMsg_PrintPages, | |||
| IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone, | ||||
|                     bool /* success */) | ||||
| 
 | ||||
| // Tells the render view to switch the CSS to print media type, renders every
 | ||||
| // requested pages for print preview using the given |settings|. This gets
 | ||||
| // called multiple times as the user updates settings.
 | ||||
| IPC_MESSAGE_ROUTED1(PrintMsg_PrintPreview, | ||||
|                     base::DictionaryValue /* settings */) | ||||
| 
 | ||||
| // Messages sent from the renderer to the browser.
 | ||||
| 
 | ||||
| #if defined(OS_WIN) | ||||
|  | @ -231,6 +294,14 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_DidPrintPage, | |||
| IPC_SYNC_MESSAGE_ROUTED0_1(PrintHostMsg_GetDefaultPrintSettings, | ||||
|                            PrintMsg_Print_Params /* default_settings */) | ||||
| 
 | ||||
| // The renderer wants to update the current print settings with new
 | ||||
| // |job_settings|.
 | ||||
| IPC_SYNC_MESSAGE_ROUTED2_2(PrintHostMsg_UpdatePrintSettings, | ||||
|                            int /* document_cookie */, | ||||
|                            base::DictionaryValue /* job_settings */, | ||||
|                            PrintMsg_PrintPages_Params /* current_settings */, | ||||
|                            bool /* canceled */) | ||||
| 
 | ||||
| // It's the renderer that controls the printing process when it is generated
 | ||||
| // by javascript. This step is about showing UI to the user to select the
 | ||||
| // final print settings. The output parameter is the same as
 | ||||
|  | @ -247,6 +318,20 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError) | |||
| IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed, | ||||
|                     int /* document cookie */) | ||||
| 
 | ||||
| // Notify the browser a print preview page has been rendered.
 | ||||
| IPC_MESSAGE_ROUTED1(PrintHostMsg_DidPreviewPage, | ||||
|                     PrintHostMsg_DidPreviewPage_Params /* params */) | ||||
| 
 | ||||
| // Sends back to the browser the complete rendered document (non-draft mode,
 | ||||
| // used for printing) that was requested by a PrintMsg_PrintPreview message.
 | ||||
| // The memory handle in this message is already valid in the browser process.
 | ||||
| IPC_MESSAGE_ROUTED1(PrintHostMsg_MetafileReadyForPrinting, | ||||
|                     PrintHostMsg_DidPreviewDocument_Params /* params */) | ||||
| 
 | ||||
| // Notify the browser the number of pages in the print preview document.
 | ||||
| IPC_MESSAGE_ROUTED1(PrintHostMsg_DidGetPreviewPageCount, | ||||
|                     PrintHostMsg_DidGetPreviewPageCount_Params /* params */) | ||||
| 
 | ||||
| 
 | ||||
| #if defined(OS_WIN) | ||||
| // Tell the utility process to start rendering the given PDF into a metafile.
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Haojian Wu
				Haojian Wu