PoDoFo 1.1.0
Loading...
Searching...
No Matches
PdfStreamedDocument.h
1// SPDX-FileCopyrightText: 2007 Dominik Seichter <domseichter@web.de>
2// SPDX-FileCopyrightText: 2023 Francesco Pretto <ceztko@gmail.com>
3// SPDX-License-Identifier: LGPL-2.0-or-later OR MPL-2.0
4
5#ifndef PDF_STREAMED_DOCUMENT_H
6#define PDF_STREAMED_DOCUMENT_H
7
8#include "PdfDeclarations.h"
9
10#include "PdfDocument.h"
11#include <podofo/auxiliary/OutputDevice.h>
12
13namespace PoDoFo {
14
15class PdfImmediateWriter;
16
47class PODOFO_API PdfStreamedDocument final : public PdfDocument
48{
49 friend class PdfImage;
50
51public:
65 PdfStreamedDocument(std::shared_ptr<OutputStreamDevice> device, PdfVersion version = PdfVersionDefault,
66 std::shared_ptr<PdfEncrypt> encrypt = nullptr, PdfSaveOptions opts = PdfSaveOptions::None);
67
80 PdfStreamedDocument(const std::string_view& filename, PdfVersion version = PdfVersionDefault,
81 std::shared_ptr<PdfEncrypt> encrypt = nullptr, PdfSaveOptions opts = PdfSaveOptions::None);
82
84
85public:
86 bool HasOwnerPermissions() const override;
87
88 const PdfEncrypt* GetEncrypt() const override;
89
90protected:
91 PdfVersion GetPdfVersion() const override;
92
93 void SetPdfVersion(PdfVersion version) override;
94
95private:
107
108private:
109 std::shared_ptr<OutputStreamDevice> m_Device;
110 std::unique_ptr<PdfImmediateWriter> m_Writer;
111 std::shared_ptr<PdfEncrypt> m_Encrypt;
112};
113
114};
115
116#endif // PDF_STREAMED_DOCUMENT_H
This file should be included as the FIRST file in every header of PoDoFo lib.
PdfDocument is the core interface for working with PDF documents.
Definition PdfDocument.h:109
A class that is used to encrypt a PDF file and set document permissions on the PDF file.
Definition PdfEncrypt.h:116
A PdfImage object is needed when ever you want to embed an image file into a PDF document.
Definition PdfImage.h:69
PdfStreamedDocument is the preferred class for creating new PDF documents.
Definition PdfStreamedDocument.h:48
PdfStreamedDocument(std::shared_ptr< OutputStreamDevice > device, PdfVersion version=PdfVersionDefault, std::shared_ptr< PdfEncrypt > encrypt=nullptr, PdfSaveOptions opts=PdfSaveOptions::None)
Create a new PdfStreamedDocument.
PdfStreamedDocument(const std::string_view &filename, PdfVersion version=PdfVersionDefault, std::shared_ptr< PdfEncrypt > encrypt=nullptr, PdfSaveOptions opts=PdfSaveOptions::None)
Create a new PdfStreamedDocument.
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:35
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
PdfSaveOptions
Definition PdfDeclarations.h:467
PdfVersion
Enum to identify different versions of the PDF file format.
Definition PdfDeclarations.h:69