Write PDF file in FILE thread.
This commit is contained in:
parent
7ffa7042b1
commit
9cf9229308
1 changed files with 14 additions and 5 deletions
|
@ -60,6 +60,15 @@ base::RefCountedBytes* GetDataFromHandle(base::SharedMemoryHandle handle,
|
||||||
return base::RefCountedBytes::TakeVector(&data);
|
return base::RefCountedBytes::TakeVector(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PrintToPdfCallback(const scoped_refptr<base::RefCountedBytes>& data,
|
||||||
|
const base::FilePath& save_path) {
|
||||||
|
printing::PdfMetafileSkia metafile;
|
||||||
|
metafile.InitFromData(static_cast<const void*>(data->front()), data->size());
|
||||||
|
base::File file(save_path,
|
||||||
|
base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE);
|
||||||
|
metafile.SaveTo(&file);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace printing {
|
namespace printing {
|
||||||
|
@ -116,11 +125,11 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
|
||||||
file_dialog::ShowSaveDialog(window, "Save As",
|
file_dialog::ShowSaveDialog(window, "Save As",
|
||||||
base::FilePath(FILE_PATH_LITERAL("print.pdf")),
|
base::FilePath(FILE_PATH_LITERAL("print.pdf")),
|
||||||
file_dialog::Filters(), &save_path);
|
file_dialog::Filters(), &save_path);
|
||||||
printing::PdfMetafileSkia metafile;
|
BrowserThread::PostTask(BrowserThread::FILE,
|
||||||
metafile.InitFromData(static_cast<const void*>(data->front()), data->size());
|
FROM_HERE,
|
||||||
base::File file(save_path,
|
base::Bind(&PrintToPdfCallback,
|
||||||
base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE);
|
data,
|
||||||
metafile.SaveTo(&file);
|
save_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
//void PrintPreviewMessageHandler::OnPrintPreviewFailed(int document_cookie) {
|
//void PrintPreviewMessageHandler::OnPrintPreviewFailed(int document_cookie) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue