Index: printing/pdf_ps_metafile_linux.h |
=================================================================== |
--- printing/pdf_ps_metafile_linux.h (revision 38032) |
+++ printing/pdf_ps_metafile_linux.h (working copy) |
@@ -1,110 +0,0 @@ |
-// Copyright (c) 2009 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. |
- |
-#ifndef PRINTING_PDF_PS_METAFILE_LINUX_H_ |
-#define PRINTING_PDF_PS_METAFILE_LINUX_H_ |
- |
-#include <string> |
- |
-#include "base/basictypes.h" |
- |
-typedef struct _cairo_surface cairo_surface_t; |
-typedef struct _cairo cairo_t; |
- |
-namespace base { |
-class FileDescriptor; |
-} |
- |
-class FilePath; |
- |
-namespace printing { |
- |
-// This class uses Cairo graphics library to generate PostScript/PDF stream |
-// and stores rendering results in a string buffer. |
-class PdfPsMetafile { |
- public: |
- enum FileFormat { |
- PDF, |
- PS, |
- }; |
- |
- // In the renderer process, callers should also call Init(void) to see if the |
- // metafile can obtain all necessary rendering resources. |
- // In the browser process, callers should also call Init(const void*, size_t) |
- // to initialize the buffer |all_pages_| to use SaveTo(). |
- explicit PdfPsMetafile(const FileFormat& format); |
- |
- ~PdfPsMetafile(); |
- |
- // Initializes to a fresh new metafile. Returns true on success. |
- // Note: Only call in the renderer to allocate rendering resources. |
- bool Init(); |
- |
- // Initializes a copy of metafile from PDF/PS stream data. |
- // Returns true on success. |
- // |src_buffer| should point to the shared memory which stores PDF/PS |
- // contents generated in the renderer. |
- // Note: Only call in the browser to initialize |all_pages_|. |
- bool Init(const void* src_buffer, size_t src_buffer_size); |
- |
- FileFormat GetFileFormat() const { return format_; } |
- |
- // Prepares a new cairo surface/context for rendering a new page. |
- // The unit is in point (=1/72 in). |
- // Returns NULL when failed. |
- cairo_t* StartPage(double width, double height); |
- |
- // Destroys the surface and the context used in rendering current page. |
- // The results of current page will be appended into buffer |all_pages_|. |
- // Returns true on success |
- // TODO(myhuang): I plan to also do page setup here (margins, the header |
- // and the footer). At this moment, only pre-defined margins for US letter |
- // paper are hard-coded here. |
- // |shrink| decides the scaling factor to fit raw printing results into |
- // printable area. |
- bool FinishPage(float shrink); |
- |
- // Closes resulting PDF/PS file. No further rendering is allowed. |
- void Close(); |
- |
- // Returns size of PDF/PS contents stored in buffer |all_pages_|. |
- // This function should ONLY be called after PDF/PS file is closed. |
- unsigned int GetDataSize() const; |
- |
- // Copies PDF/PS contents stored in buffer |all_pages_| into |dst_buffer|. |
- // This function should ONLY be called after PDF/PS file is closed. |
- // Returns true only when success. |
- bool GetData(void* dst_buffer, size_t dst_buffer_size) const; |
- |
- // Saves PDF/PS contents stored in buffer |all_pages_| into the file |
- // associated with |fd|. |
- // This function should ONLY be called after PDF/PS file is closed. |
- bool SaveTo(const base::FileDescriptor& fd) const; |
- |
- private: |
- // Cleans up all resources. |
- void CleanUpAll(); |
- |
- FileFormat format_; |
- |
- // Cairo surface and context for entire PDF/PS file. |
- cairo_surface_t* surface_; |
- cairo_t* context_; |
- |
- // Cairo surface and context for current page only. |
- cairo_surface_t* page_surface_; |
- cairo_t* page_context_; |
- |
- // Buffer stores PDF/PS contents for entire PDF/PS file. |
- std::string all_pages_; |
- |
- // Buffer stores PDF/PS contents for current page only. |
- std::string current_page_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PdfPsMetafile); |
-}; |
- |
-} // namespace printing |
- |
-#endif // PRINTING_PDF_PS_METAFILE_LINUX_H_ |