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 |