2 * Copyright 2014 Google Inc.
3 * Copyright 2015 Xamarin Inc.
4 * Copyright 2017 Microsoft Corporation. All rights reserved.
6 * Use of this source code is governed by a BSD-style license that can be
7 * found in the LICENSE file.
10 #include "SkDocument.h"
12 #include "sk_document.h"
14 #include "sk_types_priv.h"
16 void sk_document_unref(sk_document_t* document) {
17 SkSafeUnref(AsDocument(document));
20 sk_document_t* sk_document_create_pdf_from_stream(sk_wstream_t* stream, float dpi) {
21 return ToDocument(SkDocument::MakePDF(AsWStream(stream), dpi).release());
24 sk_document_t* sk_document_create_pdf_from_stream_with_metadata(sk_wstream_t* stream, float dpi, const sk_document_pdf_metadata_t* cmetadata) {
25 SkDocument::PDFMetadata metadata;
26 from_c(*cmetadata, &metadata);
27 return ToDocument(SkDocument::MakePDF(AsWStream(stream), dpi, metadata, nullptr, false).release());
30 sk_document_t* sk_document_create_pdf_from_filename(const char* path, float dpi) {
31 return ToDocument(SkDocument::MakePDF(path, dpi).release());
34 sk_document_t* sk_document_create_xps_from_stream(sk_wstream_t* stream, float dpi) {
35 return ToDocument(SkDocument::MakeXPS(AsWStream(stream), dpi).release());
38 sk_canvas_t* sk_document_begin_page(sk_document_t* document, float width, float height, const sk_rect_t* content) {
39 return ToCanvas(AsDocument(document)->beginPage(width, height, AsRect(content)));
42 void sk_document_end_page(sk_document_t* document) {
43 AsDocument(document)->endPage();
46 void sk_document_close(sk_document_t* document) {
47 AsDocument(document)->close();
50 void sk_document_abort(sk_document_t* document) {
51 AsDocument(document)->abort();