Chromium Code Reviews| Index: printing/pdf_metafile_cg_mac.h |
| diff --git a/printing/pdf_metafile_cg_mac.h b/printing/pdf_metafile_cg_mac.h |
| index f68ac4fa3a065839df71960b96dd16c9008289f1..1b4b9ef46f79dd462ea65e749bff22114f46cfd3 100644 |
| --- a/printing/pdf_metafile_cg_mac.h |
| +++ b/printing/pdf_metafile_cg_mac.h |
| @@ -5,68 +5,51 @@ |
| #ifndef PRINTING_PDF_METAFILE_CG_MAC_H_ |
| #define PRINTING_PDF_METAFILE_CG_MAC_H_ |
| -#include <ApplicationServices/ApplicationServices.h> |
| -#include <CoreFoundation/CoreFoundation.h> |
| -#include <stdint.h> |
| +#include <stddef.h> |
| -#include "base/mac/scoped_cftyperef.h" |
| -#include "base/macros.h" |
| -#include "printing/metafile.h" |
| +#include "build/build_config.h" |
|
Lei Zhang
2017/04/08 01:24:24
Not needed?
hal.canary
2017/04/11 19:07:27
I reverted most of this file. No longer applicab
|
| +#include "printing/printing_export.h" |
| -namespace gfx { |
| -class Rect; |
| -class Size; |
| -} |
| +struct CGRect; |
| +typedef struct CGContext* CGContextRef; |
|
Lei Zhang
2017/04/08 01:24:24
Can we use "using CGContextRef = struct CGContext*
hal.canary
2017/04/11 19:07:27
I reverted most of this file. No longer applicab
|
| namespace printing { |
| -// This class creates a graphics context that renders into a PDF data stream. |
| -class PRINTING_EXPORT PdfMetafileCg : public Metafile { |
| +class PRINTING_EXPORT PdfMetafileCg { |
| public: |
| - PdfMetafileCg(); |
| - ~PdfMetafileCg() override; |
| - |
| - // Metafile methods. |
| - bool Init() override; |
| - bool InitFromData(const void* src_buffer, size_t src_buffer_size) override; |
| - void StartPage(const gfx::Size& page_size, |
| - const gfx::Rect& content_area, |
| - const float& scale_factor) override; |
| - bool FinishPage() override; |
| - bool FinishDocument() override; |
| - |
| - uint32_t GetDataSize() const override; |
| - bool GetData(void* dst_buffer, uint32_t dst_buffer_size) const override; |
| - |
| - gfx::Rect GetPageBounds(unsigned int page_number) const override; |
| - unsigned int GetPageCount() const override; |
| - |
| - // Note: The returned context *must not be retained* past Close(). If it is, |
| - // the data returned from GetData will not be valid PDF data. |
| - CGContextRef context() const override; |
| - |
| - bool RenderPage(unsigned int page_number, |
| - skia::NativeDrawingContext context, |
| - const CGRect rect, |
| - const MacRenderPageParams& params) const override; |
| - |
| - private: |
| - // Returns a CGPDFDocumentRef version of |pdf_data_|. |
| - CGPDFDocumentRef GetPDFDocument() const; |
| - |
| - // Context for rendering to the pdf. |
| - base::ScopedCFTypeRef<CGContextRef> context_; |
| - |
| - // PDF backing store. |
| - base::ScopedCFTypeRef<CFMutableDataRef> pdf_data_; |
| - |
| - // Lazily-created CGPDFDocument representation of |pdf_data_|. |
| - mutable base::ScopedCFTypeRef<CGPDFDocumentRef> pdf_doc_; |
| - |
| - // Whether or not a page is currently open. |
| - bool page_is_open_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(PdfMetafileCg); |
| + // |shrink_to_fit| specifies whether the output should be shrunk to fit a |
| + // destination page if the source PDF is bigger than the destination page in |
| + // any dimension. If this is false, parts of the source PDF page that lie |
| + // outside the bounds will be clipped. |
| + // |
| + // |stretch_to_fit| specifies whether the output should be stretched to fit |
| + // the destination page if the source page size is smaller in all dimensions. |
| + // |
| + // |center_horizontally| specifies whether the output (after any scaling is |
| + // done) should be centered horizontally within the destination page. |
| + // |
| + // |center_vertically| specifies whether the output (after any scaling is |
| + // done) should be centered vertically within the destination page. |
| + // Note that all scaling preserves the original aspect ratio of the page. |
| + // |
| + // |autorotate| specifies whether the source PDF should be autorotated to fit |
| + // on the destination page. |
| + struct RenderPageParams { |
| + bool shrink_to_fit = false; |
| + bool stretch_to_fit = false; |
| + bool center_horizontally = false; |
| + bool center_vertically = false; |
| + bool autorotate = false; |
| + }; |
| + // Renders the given page from src_buffer into |rect| in the given context. |
|
Lei Zhang
2017/04/08 01:24:24
Refer to |src_buffer| consistently like other vari
hal.canary
2017/04/11 19:07:27
Done.
|
| + // Pages use a 1-based index. The rendering uses the arguments in |
| + // |params| to determine scaling, translation, and rotation. |
| + static bool RenderPage(const void* src_buffer, |
|
Lei Zhang
2017/04/08 01:24:24
Change this to take: const std::vector& buffer, si
hal.canary
2017/04/11 19:07:27
Done.
|
| + size_t src_buffer_size, |
| + unsigned int page_number, |
| + CGContextRef context, |
| + const CGRect rect, |
| + const RenderPageParams& params); |
| }; |
| } // namespace printing |