| 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_
|
|
|