diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-07 22:34:36 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-07 22:34:36 +0000 |
commit | 1e44a9a4adccf4f31d817177e2ee47b58c93f40d (patch) | |
tree | 26ec83a404b1dd4deceb479ca3ef3540141de75e /printing/pdf_metafile_skia.cc | |
parent | 1e14033b64fcacbd29ef345d63b6e7ed2c576f2d (diff) | |
download | chromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.zip chromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.tar.gz chromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.tar.bz2 |
Revert 80841 - + This CL pulls in all the PDF code (i.e. we are now compiling the PDF backend on Chrome).+ Add a Metafile to contain Skia PDF content.+ Add a VectorPlatformDevice for use with the Skia PDF backend.BUG=62889TEST=NONEReview URL: http://codereview.chromium.org/6499024
TBR=vandebo@chromium.org
Review URL: http://codereview.chromium.org/6814028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80857 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/pdf_metafile_skia.cc')
-rw-r--r-- | printing/pdf_metafile_skia.cc | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc deleted file mode 100644 index 72d8908..0000000 --- a/printing/pdf_metafile_skia.cc +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "printing/pdf_metafile_skia.h" - -#include "base/eintr_wrapper.h" -#include "base/file_descriptor_posix.h" -#include "base/file_util.h" -#include "skia/ext/vector_platform_device_skia.h" -#include "third_party/skia/include/core/SkRefCnt.h" -#include "third_party/skia/include/core/SkStream.h" -#include "third_party/skia/include/pdf/SkPDFDevice.h" -#include "third_party/skia/include/pdf/SkPDFDocument.h" -#include "third_party/skia/include/pdf/SkPDFPage.h" -#include "ui/gfx/point.h" -#include "ui/gfx/rect.h" -#include "ui/gfx/size.h" - -namespace printing { - -struct PdfMetafileSkiaData { - SkRefPtr<SkPDFDevice> current_page_; - SkPDFDocument pdf_doc_; - SkDynamicMemoryWStream pdf_stream_; -}; - -PdfMetafileSkia::~PdfMetafileSkia() {} - -bool PdfMetafileSkia::Init() { - return true; -} -bool PdfMetafileSkia::InitFromData(const void* src_buffer, - uint32 src_buffer_size) { - return data_->pdf_stream_.write(src_buffer, src_buffer_size); -} - -skia::PlatformDevice* PdfMetafileSkia::StartPageForVectorCanvas( - const gfx::Size& page_size, const gfx::Point& content_origin, - const float& scale_factor) { - DCHECK(data_->current_page_.get() == NULL); - - skia::VectorPlatformDeviceSkia* device = - new skia::VectorPlatformDeviceSkia(page_size.width(), page_size.height(), - SkPDFDevice::kFlip_OriginTransform); - device->setInitialTransform(content_origin.x(), content_origin.y(), - scale_factor); - data_->current_page_ = device->PdfDevice(); - return device; -} - -bool PdfMetafileSkia::StartPage(const gfx::Size& page_size, - const gfx::Point& content_origin, - const float& scale_factor) { - NOTREACHED(); - return NULL; -} - -bool PdfMetafileSkia::FinishPage() { - DCHECK(data_->current_page_.get()); - - data_->pdf_doc_.appendPage(data_->current_page_); - data_->current_page_ = NULL; - return true; -} - -bool PdfMetafileSkia::FinishDocument() { - // Don't do anything if we've already set the data in InitFromData. - if (data_->pdf_stream_.getOffset()) - return true; - - if (data_->current_page_.get()) - FinishPage(); - return data_->pdf_doc_.emitPDF(&data_->pdf_stream_); -} - -uint32 PdfMetafileSkia::GetDataSize() const { - return data_->pdf_stream_.getOffset(); -} - -bool PdfMetafileSkia::GetData(void* dst_buffer, - uint32 dst_buffer_size) const { - if (dst_buffer_size < GetDataSize()) - return false; - - memcpy(dst_buffer, data_->pdf_stream_.getStream(), dst_buffer_size); - return true; -} - -bool PdfMetafileSkia::SaveTo(const FilePath& file_path) const { - DCHECK_GT(data_->pdf_stream_.getOffset(), 0U); - if (file_util::WriteFile(file_path, data_->pdf_stream_.getStream(), - GetDataSize()) != static_cast<int>(GetDataSize())) { - DLOG(ERROR) << "Failed to save file " << file_path.value().c_str(); - return false; - } - return true; -} - -gfx::Rect PdfMetafileSkia::GetPageBounds(unsigned int page_number) const { - // TODO(vandebo) add a method to get the page size for a given page to - // SkPDFDocument. - NOTIMPLEMENTED(); - return gfx::Rect(); -} - -unsigned int PdfMetafileSkia::GetPageCount() const { - // TODO(vandebo) add a method to get the number of pages to SkPDFDocument. - NOTIMPLEMENTED(); - return 0; -} - -gfx::NativeDrawingContext PdfMetafileSkia::context() const { - NOTREACHED(); - return NULL; -} - -#if defined(OS_WIN) -bool PdfMetafileSkia::Playback(gfx::NativeDrawingContext hdc, - const RECT* rect) const { - NOTREACHED(); - return false; -} - -bool PdfMetafileSkia::SafePlayback(gfx::NativeDrawingContext hdc) const { - NOTREACHED(); - return false; -} - -HENHMETAFILE PdfMetafileSkia::emf() const { - NOTREACHED(); - return NULL; -} -#endif // if defined(OS_WIN) - -#if defined(OS_CHROMEOS) -bool PdfMetafileSkia::SaveToFD(const base::FileDescriptor& fd) const { - DCHECK_GT(data_->pdf_stream_.getOffset(), 0U); - - if (fd.fd < 0) { - DLOG(ERROR) << "Invalid file descriptor!"; - return false; - } - - bool result = true; - if (file_util::WriteFileDescriptor(fd.fd, data_->pdf_stream_.getStream(), - GetDataSize()) != - static_cast<int>(GetDataSize())) { - DLOG(ERROR) << "Failed to save file with fd " << fd.fd; - result = false; - } - - if (fd.auto_close) { - if (HANDLE_EINTR(close(fd.fd)) < 0) { - DPLOG(WARNING) << "close"; - result = false; - } - } - return result; -} -#endif - -PdfMetafileSkia::PdfMetafileSkia() : data_(new PdfMetafileSkiaData) {} - -} // namespace printing |