Showing
17 changed files
with
217 additions
and
3507 deletions
Too many changes to show.
To preserve performance only 17 of 17+ files are displayed.
@@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
7 | - Implement pan and zoom on PdfPreview widget | 7 | - Implement pan and zoom on PdfPreview widget |
8 | - Improve orientation handling | 8 | - Improve orientation handling |
9 | - Improve directPrint | 9 | - Improve directPrint |
10 | +- Remove the windows DLL | ||
10 | 11 | ||
11 | ## 3.7.2 | 12 | ## 3.7.2 |
12 | 13 |
@@ -16,11 +16,22 @@ cmake_minimum_required(VERSION 3.15) | @@ -16,11 +16,22 @@ cmake_minimum_required(VERSION 3.15) | ||
16 | set(PROJECT_NAME "printing") | 16 | set(PROJECT_NAME "printing") |
17 | project(${PROJECT_NAME} LANGUAGES CXX) | 17 | project(${PROJECT_NAME} LANGUAGES CXX) |
18 | 18 | ||
19 | +set(ARCH "x64") | ||
20 | + | ||
21 | +# Download pdfium | ||
22 | +include(../windows/DownloadProject.cmake) | ||
23 | +download_project( | ||
24 | + PROJ | ||
25 | + pdfium | ||
26 | + URL | ||
27 | + https://github.com/bblanchon/pdfium-binaries/releases/latest/download/pdfium-windows-${ARCH}.zip | ||
28 | + ) | ||
29 | + | ||
19 | # This value is used when generating builds using this plugin, so it must not be | 30 | # This value is used when generating builds using this plugin, so it must not be |
20 | # changed | 31 | # changed |
21 | set(PLUGIN_NAME "printing_plugin") | 32 | set(PLUGIN_NAME "printing_plugin") |
22 | 33 | ||
23 | -include(pdfium/PDFiumConfig.cmake) | 34 | +include(${pdfium_SOURCE_DIR}/PDFiumConfig.cmake) |
24 | 35 | ||
25 | add_library(${PLUGIN_NAME} SHARED | 36 | add_library(${PLUGIN_NAME} SHARED |
26 | "printing.cpp" | 37 | "printing.cpp" |
@@ -35,7 +46,10 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden) | @@ -35,7 +46,10 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden) | ||
35 | target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL) | 46 | target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL) |
36 | target_include_directories(${PLUGIN_NAME} | 47 | target_include_directories(${PLUGIN_NAME} |
37 | INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") | 48 | INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") |
38 | -target_link_libraries(${PLUGIN_NAME} PRIVATE pdfium flutter flutter_wrapper_plugin) | 49 | +target_link_libraries(${PLUGIN_NAME} |
50 | + PRIVATE pdfium flutter flutter_wrapper_plugin) | ||
39 | 51 | ||
40 | # List of absolute paths to libraries that should be bundled with the plugin | 52 | # List of absolute paths to libraries that should be bundled with the plugin |
41 | -set(printing_bundled_libraries "${CMAKE_CURRENT_SOURCE_DIR}/pdfium/x64/bin/pdfium.dll" PARENT_SCOPE) | 53 | +set(printing_bundled_libraries |
54 | + "${PDFium_LIBRARY}" | ||
55 | + PARENT_SCOPE) |
1 | +# Distributed under the OSI-approved MIT License. See accompanying | ||
2 | +# file LICENSE or https://github.com/Crascit/DownloadProject for details. | ||
3 | + | ||
4 | +cmake_minimum_required(VERSION 2.8.2) | ||
5 | + | ||
6 | +project(${DL_ARGS_PROJ}-download NONE) | ||
7 | + | ||
8 | +include(ExternalProject) | ||
9 | +ExternalProject_Add(${DL_ARGS_PROJ}-download | ||
10 | + ${DL_ARGS_UNPARSED_ARGUMENTS} | ||
11 | + SOURCE_DIR "${DL_ARGS_SOURCE_DIR}" | ||
12 | + BINARY_DIR "${DL_ARGS_BINARY_DIR}" | ||
13 | + CONFIGURE_COMMAND "" | ||
14 | + BUILD_COMMAND "" | ||
15 | + INSTALL_COMMAND "" | ||
16 | + TEST_COMMAND "" | ||
17 | +) |
printing/windows/DownloadProject.cmake
0 → 100644
1 | +# Distributed under the OSI-approved MIT License. See accompanying | ||
2 | +# file LICENSE or https://github.com/Crascit/DownloadProject for details. | ||
3 | +# | ||
4 | +# MODULE: DownloadProject | ||
5 | +# | ||
6 | +# PROVIDES: | ||
7 | +# download_project( PROJ projectName | ||
8 | +# [PREFIX prefixDir] | ||
9 | +# [DOWNLOAD_DIR downloadDir] | ||
10 | +# [SOURCE_DIR srcDir] | ||
11 | +# [BINARY_DIR binDir] | ||
12 | +# [QUIET] | ||
13 | +# ... | ||
14 | +# ) | ||
15 | +# | ||
16 | +# Provides the ability to download and unpack a tarball, zip file, git repository, | ||
17 | +# etc. at configure time (i.e. when the cmake command is run). How the downloaded | ||
18 | +# and unpacked contents are used is up to the caller, but the motivating case is | ||
19 | +# to download source code which can then be included directly in the build with | ||
20 | +# add_subdirectory() after the call to download_project(). Source and build | ||
21 | +# directories are set up with this in mind. | ||
22 | +# | ||
23 | +# The PROJ argument is required. The projectName value will be used to construct | ||
24 | +# the following variables upon exit (obviously replace projectName with its actual | ||
25 | +# value): | ||
26 | +# | ||
27 | +# projectName_SOURCE_DIR | ||
28 | +# projectName_BINARY_DIR | ||
29 | +# | ||
30 | +# The SOURCE_DIR and BINARY_DIR arguments are optional and would not typically | ||
31 | +# need to be provided. They can be specified if you want the downloaded source | ||
32 | +# and build directories to be located in a specific place. The contents of | ||
33 | +# projectName_SOURCE_DIR and projectName_BINARY_DIR will be populated with the | ||
34 | +# locations used whether you provide SOURCE_DIR/BINARY_DIR or not. | ||
35 | +# | ||
36 | +# The DOWNLOAD_DIR argument does not normally need to be set. It controls the | ||
37 | +# location of the temporary CMake build used to perform the download. | ||
38 | +# | ||
39 | +# The PREFIX argument can be provided to change the base location of the default | ||
40 | +# values of DOWNLOAD_DIR, SOURCE_DIR and BINARY_DIR. If all of those three arguments | ||
41 | +# are provided, then PREFIX will have no effect. The default value for PREFIX is | ||
42 | +# CMAKE_BINARY_DIR. | ||
43 | +# | ||
44 | +# The QUIET option can be given if you do not want to show the output associated | ||
45 | +# with downloading the specified project. | ||
46 | +# | ||
47 | +# In addition to the above, any other options are passed through unmodified to | ||
48 | +# ExternalProject_Add() to perform the actual download, patch and update steps. | ||
49 | +# The following ExternalProject_Add() options are explicitly prohibited (they | ||
50 | +# are reserved for use by the download_project() command): | ||
51 | +# | ||
52 | +# CONFIGURE_COMMAND | ||
53 | +# BUILD_COMMAND | ||
54 | +# INSTALL_COMMAND | ||
55 | +# TEST_COMMAND | ||
56 | +# | ||
57 | +# Only those ExternalProject_Add() arguments which relate to downloading, patching | ||
58 | +# and updating of the project sources are intended to be used. Also note that at | ||
59 | +# least one set of download-related arguments are required. | ||
60 | +# | ||
61 | +# If using CMake 3.2 or later, the UPDATE_DISCONNECTED option can be used to | ||
62 | +# prevent a check at the remote end for changes every time CMake is run | ||
63 | +# after the first successful download. See the documentation of the ExternalProject | ||
64 | +# module for more information. It is likely you will want to use this option if it | ||
65 | +# is available to you. Note, however, that the ExternalProject implementation contains | ||
66 | +# bugs which result in incorrect handling of the UPDATE_DISCONNECTED option when | ||
67 | +# using the URL download method or when specifying a SOURCE_DIR with no download | ||
68 | +# method. Fixes for these have been created, the last of which is scheduled for | ||
69 | +# inclusion in CMake 3.8.0. Details can be found here: | ||
70 | +# | ||
71 | +# https://gitlab.kitware.com/cmake/cmake/commit/bdca68388bd57f8302d3c1d83d691034b7ffa70c | ||
72 | +# https://gitlab.kitware.com/cmake/cmake/issues/16428 | ||
73 | +# | ||
74 | +# If you experience build errors related to the update step, consider avoiding | ||
75 | +# the use of UPDATE_DISCONNECTED. | ||
76 | +# | ||
77 | +# EXAMPLE USAGE: | ||
78 | +# | ||
79 | +# include(DownloadProject) | ||
80 | +# download_project(PROJ googletest | ||
81 | +# GIT_REPOSITORY https://github.com/google/googletest.git | ||
82 | +# GIT_TAG master | ||
83 | +# UPDATE_DISCONNECTED 1 | ||
84 | +# QUIET | ||
85 | +# ) | ||
86 | +# | ||
87 | +# add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}) | ||
88 | +# | ||
89 | +#======================================================================================== | ||
90 | + | ||
91 | + | ||
92 | +set(_DownloadProjectDir "${CMAKE_CURRENT_LIST_DIR}") | ||
93 | + | ||
94 | +include(CMakeParseArguments) | ||
95 | + | ||
96 | +function(download_project) | ||
97 | + | ||
98 | + set(options QUIET) | ||
99 | + set(oneValueArgs | ||
100 | + PROJ | ||
101 | + PREFIX | ||
102 | + DOWNLOAD_DIR | ||
103 | + SOURCE_DIR | ||
104 | + BINARY_DIR | ||
105 | + # Prevent the following from being passed through | ||
106 | + CONFIGURE_COMMAND | ||
107 | + BUILD_COMMAND | ||
108 | + INSTALL_COMMAND | ||
109 | + TEST_COMMAND | ||
110 | + ) | ||
111 | + set(multiValueArgs "") | ||
112 | + | ||
113 | + cmake_parse_arguments(DL_ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) | ||
114 | + | ||
115 | + # Hide output if requested | ||
116 | + if (DL_ARGS_QUIET) | ||
117 | + set(OUTPUT_QUIET "OUTPUT_QUIET") | ||
118 | + else() | ||
119 | + unset(OUTPUT_QUIET) | ||
120 | + message(STATUS "Downloading/updating ${DL_ARGS_PROJ}") | ||
121 | + endif() | ||
122 | + | ||
123 | + # Set up where we will put our temporary CMakeLists.txt file and also | ||
124 | + # the base point below which the default source and binary dirs will be. | ||
125 | + # The prefix must always be an absolute path. | ||
126 | + if (NOT DL_ARGS_PREFIX) | ||
127 | + set(DL_ARGS_PREFIX "${CMAKE_BINARY_DIR}") | ||
128 | + else() | ||
129 | + get_filename_component(DL_ARGS_PREFIX "${DL_ARGS_PREFIX}" ABSOLUTE | ||
130 | + BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}") | ||
131 | + endif() | ||
132 | + if (NOT DL_ARGS_DOWNLOAD_DIR) | ||
133 | + set(DL_ARGS_DOWNLOAD_DIR "${DL_ARGS_PREFIX}/${DL_ARGS_PROJ}-download") | ||
134 | + endif() | ||
135 | + | ||
136 | + # Ensure the caller can know where to find the source and build directories | ||
137 | + if (NOT DL_ARGS_SOURCE_DIR) | ||
138 | + set(DL_ARGS_SOURCE_DIR "${DL_ARGS_PREFIX}/${DL_ARGS_PROJ}-src") | ||
139 | + endif() | ||
140 | + if (NOT DL_ARGS_BINARY_DIR) | ||
141 | + set(DL_ARGS_BINARY_DIR "${DL_ARGS_PREFIX}/${DL_ARGS_PROJ}-build") | ||
142 | + endif() | ||
143 | + set(${DL_ARGS_PROJ}_SOURCE_DIR "${DL_ARGS_SOURCE_DIR}" PARENT_SCOPE) | ||
144 | + set(${DL_ARGS_PROJ}_BINARY_DIR "${DL_ARGS_BINARY_DIR}" PARENT_SCOPE) | ||
145 | + | ||
146 | + # The way that CLion manages multiple configurations, it causes a copy of | ||
147 | + # the CMakeCache.txt to be copied across due to it not expecting there to | ||
148 | + # be a project within a project. This causes the hard-coded paths in the | ||
149 | + # cache to be copied and builds to fail. To mitigate this, we simply | ||
150 | + # remove the cache if it exists before we configure the new project. It | ||
151 | + # is safe to do so because it will be re-generated. Since this is only | ||
152 | + # executed at the configure step, it should not cause additional builds or | ||
153 | + # downloads. | ||
154 | + file(REMOVE "${DL_ARGS_DOWNLOAD_DIR}/CMakeCache.txt") | ||
155 | + | ||
156 | + # Create and build a separate CMake project to carry out the download. | ||
157 | + # If we've already previously done these steps, they will not cause | ||
158 | + # anything to be updated, so extra rebuilds of the project won't occur. | ||
159 | + # Make sure to pass through CMAKE_MAKE_PROGRAM in case the main project | ||
160 | + # has this set to something not findable on the PATH. | ||
161 | + configure_file("${_DownloadProjectDir}/DownloadProject.CMakeLists.cmake.in" | ||
162 | + "${DL_ARGS_DOWNLOAD_DIR}/CMakeLists.txt") | ||
163 | + execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" | ||
164 | + -D "CMAKE_MAKE_PROGRAM:FILE=${CMAKE_MAKE_PROGRAM}" | ||
165 | + . | ||
166 | + RESULT_VARIABLE result | ||
167 | + ${OUTPUT_QUIET} | ||
168 | + WORKING_DIRECTORY "${DL_ARGS_DOWNLOAD_DIR}" | ||
169 | + ) | ||
170 | + if(result) | ||
171 | + message(FATAL_ERROR "CMake step for ${DL_ARGS_PROJ} failed: ${result}") | ||
172 | + endif() | ||
173 | + execute_process(COMMAND ${CMAKE_COMMAND} --build . | ||
174 | + RESULT_VARIABLE result | ||
175 | + ${OUTPUT_QUIET} | ||
176 | + WORKING_DIRECTORY "${DL_ARGS_DOWNLOAD_DIR}" | ||
177 | + ) | ||
178 | + if(result) | ||
179 | + message(FATAL_ERROR "Build step for ${DL_ARGS_PROJ} failed: ${result}") | ||
180 | + endif() | ||
181 | + | ||
182 | +endfunction() |
printing/windows/pdfium/LICENSE
deleted
100644 → 0
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// | ||
3 | -// Redistribution and use in source and binary forms, with or without | ||
4 | -// modification, are permitted provided that the following conditions are | ||
5 | -// met: | ||
6 | -// | ||
7 | -// * Redistributions of source code must retain the above copyright | ||
8 | -// notice, this list of conditions and the following disclaimer. | ||
9 | -// * Redistributions in binary form must reproduce the above | ||
10 | -// copyright notice, this list of conditions and the following disclaimer | ||
11 | -// in the documentation and/or other materials provided with the | ||
12 | -// distribution. | ||
13 | -// * Neither the name of Google Inc. nor the names of its | ||
14 | -// contributors may be used to endorse or promote products derived from | ||
15 | -// this software without specific prior written permission. | ||
16 | -// | ||
17 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
18 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
19 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
20 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
21 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
22 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
23 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
24 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
25 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
27 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | - | ||
29 | - | ||
30 | - Apache License | ||
31 | - Version 2.0, January 2004 | ||
32 | - https://www.apache.org/licenses/ | ||
33 | - | ||
34 | - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||
35 | - | ||
36 | - 1. Definitions. | ||
37 | - | ||
38 | - "License" shall mean the terms and conditions for use, reproduction, | ||
39 | - and distribution as defined by Sections 1 through 9 of this document. | ||
40 | - | ||
41 | - "Licensor" shall mean the copyright owner or entity authorized by | ||
42 | - the copyright owner that is granting the License. | ||
43 | - | ||
44 | - "Legal Entity" shall mean the union of the acting entity and all | ||
45 | - other entities that control, are controlled by, or are under common | ||
46 | - control with that entity. For the purposes of this definition, | ||
47 | - "control" means (i) the power, direct or indirect, to cause the | ||
48 | - direction or management of such entity, whether by contract or | ||
49 | - otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||
50 | - outstanding shares, or (iii) beneficial ownership of such entity. | ||
51 | - | ||
52 | - "You" (or "Your") shall mean an individual or Legal Entity | ||
53 | - exercising permissions granted by this License. | ||
54 | - | ||
55 | - "Source" form shall mean the preferred form for making modifications, | ||
56 | - including but not limited to software source code, documentation | ||
57 | - source, and configuration files. | ||
58 | - | ||
59 | - "Object" form shall mean any form resulting from mechanical | ||
60 | - transformation or translation of a Source form, including but | ||
61 | - not limited to compiled object code, generated documentation, | ||
62 | - and conversions to other media types. | ||
63 | - | ||
64 | - "Work" shall mean the work of authorship, whether in Source or | ||
65 | - Object form, made available under the License, as indicated by a | ||
66 | - copyright notice that is included in or attached to the work | ||
67 | - (an example is provided in the Appendix below). | ||
68 | - | ||
69 | - "Derivative Works" shall mean any work, whether in Source or Object | ||
70 | - form, that is based on (or derived from) the Work and for which the | ||
71 | - editorial revisions, annotations, elaborations, or other modifications | ||
72 | - represent, as a whole, an original work of authorship. For the purposes | ||
73 | - of this License, Derivative Works shall not include works that remain | ||
74 | - separable from, or merely link (or bind by name) to the interfaces of, | ||
75 | - the Work and Derivative Works thereof. | ||
76 | - | ||
77 | - "Contribution" shall mean any work of authorship, including | ||
78 | - the original version of the Work and any modifications or additions | ||
79 | - to that Work or Derivative Works thereof, that is intentionally | ||
80 | - submitted to Licensor for inclusion in the Work by the copyright owner | ||
81 | - or by an individual or Legal Entity authorized to submit on behalf of | ||
82 | - the copyright owner. For the purposes of this definition, "submitted" | ||
83 | - means any form of electronic, verbal, or written communication sent | ||
84 | - to the Licensor or its representatives, including but not limited to | ||
85 | - communication on electronic mailing lists, source code control systems, | ||
86 | - and issue tracking systems that are managed by, or on behalf of, the | ||
87 | - Licensor for the purpose of discussing and improving the Work, but | ||
88 | - excluding communication that is conspicuously marked or otherwise | ||
89 | - designated in writing by the copyright owner as "Not a Contribution." | ||
90 | - | ||
91 | - "Contributor" shall mean Licensor and any individual or Legal Entity | ||
92 | - on behalf of whom a Contribution has been received by Licensor and | ||
93 | - subsequently incorporated within the Work. | ||
94 | - | ||
95 | - 2. Grant of Copyright License. Subject to the terms and conditions of | ||
96 | - this License, each Contributor hereby grants to You a perpetual, | ||
97 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
98 | - copyright license to reproduce, prepare Derivative Works of, | ||
99 | - publicly display, publicly perform, sublicense, and distribute the | ||
100 | - Work and such Derivative Works in Source or Object form. | ||
101 | - | ||
102 | - 3. Grant of Patent License. Subject to the terms and conditions of | ||
103 | - this License, each Contributor hereby grants to You a perpetual, | ||
104 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
105 | - (except as stated in this section) patent license to make, have made, | ||
106 | - use, offer to sell, sell, import, and otherwise transfer the Work, | ||
107 | - where such license applies only to those patent claims licensable | ||
108 | - by such Contributor that are necessarily infringed by their | ||
109 | - Contribution(s) alone or by combination of their Contribution(s) | ||
110 | - with the Work to which such Contribution(s) was submitted. If You | ||
111 | - institute patent litigation against any entity (including a | ||
112 | - cross-claim or counterclaim in a lawsuit) alleging that the Work | ||
113 | - or a Contribution incorporated within the Work constitutes direct | ||
114 | - or contributory patent infringement, then any patent licenses | ||
115 | - granted to You under this License for that Work shall terminate | ||
116 | - as of the date such litigation is filed. | ||
117 | - | ||
118 | - 4. Redistribution. You may reproduce and distribute copies of the | ||
119 | - Work or Derivative Works thereof in any medium, with or without | ||
120 | - modifications, and in Source or Object form, provided that You | ||
121 | - meet the following conditions: | ||
122 | - | ||
123 | - (a) You must give any other recipients of the Work or | ||
124 | - Derivative Works a copy of this License; and | ||
125 | - | ||
126 | - (b) You must cause any modified files to carry prominent notices | ||
127 | - stating that You changed the files; and | ||
128 | - | ||
129 | - (c) You must retain, in the Source form of any Derivative Works | ||
130 | - that You distribute, all copyright, patent, trademark, and | ||
131 | - attribution notices from the Source form of the Work, | ||
132 | - excluding those notices that do not pertain to any part of | ||
133 | - the Derivative Works; and | ||
134 | - | ||
135 | - (d) If the Work includes a "NOTICE" text file as part of its | ||
136 | - distribution, then any Derivative Works that You distribute must | ||
137 | - include a readable copy of the attribution notices contained | ||
138 | - within such NOTICE file, excluding those notices that do not | ||
139 | - pertain to any part of the Derivative Works, in at least one | ||
140 | - of the following places: within a NOTICE text file distributed | ||
141 | - as part of the Derivative Works; within the Source form or | ||
142 | - documentation, if provided along with the Derivative Works; or, | ||
143 | - within a display generated by the Derivative Works, if and | ||
144 | - wherever such third-party notices normally appear. The contents | ||
145 | - of the NOTICE file are for informational purposes only and | ||
146 | - do not modify the License. You may add Your own attribution | ||
147 | - notices within Derivative Works that You distribute, alongside | ||
148 | - or as an addendum to the NOTICE text from the Work, provided | ||
149 | - that such additional attribution notices cannot be construed | ||
150 | - as modifying the License. | ||
151 | - | ||
152 | - You may add Your own copyright statement to Your modifications and | ||
153 | - may provide additional or different license terms and conditions | ||
154 | - for use, reproduction, or distribution of Your modifications, or | ||
155 | - for any such Derivative Works as a whole, provided Your use, | ||
156 | - reproduction, and distribution of the Work otherwise complies with | ||
157 | - the conditions stated in this License. | ||
158 | - | ||
159 | - 5. Submission of Contributions. Unless You explicitly state otherwise, | ||
160 | - any Contribution intentionally submitted for inclusion in the Work | ||
161 | - by You to the Licensor shall be under the terms and conditions of | ||
162 | - this License, without any additional terms or conditions. | ||
163 | - Notwithstanding the above, nothing herein shall supersede or modify | ||
164 | - the terms of any separate license agreement you may have executed | ||
165 | - with Licensor regarding such Contributions. | ||
166 | - | ||
167 | - 6. Trademarks. This License does not grant permission to use the trade | ||
168 | - names, trademarks, service marks, or product names of the Licensor, | ||
169 | - except as required for reasonable and customary use in describing the | ||
170 | - origin of the Work and reproducing the content of the NOTICE file. | ||
171 | - | ||
172 | - 7. Disclaimer of Warranty. Unless required by applicable law or | ||
173 | - agreed to in writing, Licensor provides the Work (and each | ||
174 | - Contributor provides its Contributions) on an "AS IS" BASIS, | ||
175 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||
176 | - implied, including, without limitation, any warranties or conditions | ||
177 | - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||
178 | - PARTICULAR PURPOSE. You are solely responsible for determining the | ||
179 | - appropriateness of using or redistributing the Work and assume any | ||
180 | - risks associated with Your exercise of permissions under this License. | ||
181 | - | ||
182 | - 8. Limitation of Liability. In no event and under no legal theory, | ||
183 | - whether in tort (including negligence), contract, or otherwise, | ||
184 | - unless required by applicable law (such as deliberate and grossly | ||
185 | - negligent acts) or agreed to in writing, shall any Contributor be | ||
186 | - liable to You for damages, including any direct, indirect, special, | ||
187 | - incidental, or consequential damages of any character arising as a | ||
188 | - result of this License or out of the use or inability to use the | ||
189 | - Work (including but not limited to damages for loss of goodwill, | ||
190 | - work stoppage, computer failure or malfunction, or any and all | ||
191 | - other commercial damages or losses), even if such Contributor | ||
192 | - has been advised of the possibility of such damages. | ||
193 | - | ||
194 | - 9. Accepting Warranty or Additional Liability. While redistributing | ||
195 | - the Work or Derivative Works thereof, You may choose to offer, | ||
196 | - and charge a fee for, acceptance of support, warranty, indemnity, | ||
197 | - or other liability obligations and/or rights consistent with this | ||
198 | - License. However, in accepting such obligations, You may act only | ||
199 | - on Your own behalf and on Your sole responsibility, not on behalf | ||
200 | - of any other Contributor, and only if You agree to indemnify, | ||
201 | - defend, and hold each Contributor harmless for any liability | ||
202 | - incurred by, or claims asserted against, such Contributor by reason | ||
203 | - of your accepting any such warranty or additional liability. | ||
204 | - | ||
205 | - END OF TERMS AND CONDITIONS | ||
206 | - | ||
207 | - APPENDIX: How to apply the Apache License to your work. | ||
208 | - | ||
209 | - To apply the Apache License to your work, attach the following | ||
210 | - boilerplate notice, with the fields enclosed by brackets "[]" | ||
211 | - replaced with your own identifying information. (Don't include | ||
212 | - the brackets!) The text should be enclosed in the appropriate | ||
213 | - comment syntax for the file format. We also recommend that a | ||
214 | - file or class name and description of purpose be included on the | ||
215 | - same "printed page" as the copyright notice for easier | ||
216 | - identification within third-party archives. | ||
217 | - | ||
218 | - Copyright [yyyy] [name of copyright owner] | ||
219 | - | ||
220 | - Licensed under the Apache License, Version 2.0 (the "License"); | ||
221 | - you may not use this file except in compliance with the License. | ||
222 | - You may obtain a copy of the License at | ||
223 | - | ||
224 | - https://www.apache.org/licenses/LICENSE-2.0 | ||
225 | - | ||
226 | - Unless required by applicable law or agreed to in writing, software | ||
227 | - distributed under the License is distributed on an "AS IS" BASIS, | ||
228 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
229 | - See the License for the specific language governing permissions and | ||
230 | - limitations under the License. |
1 | -# PDFium Package Configuration for CMake | ||
2 | -# | ||
3 | -# To use PDFium in you CMake project: | ||
4 | -# | ||
5 | -# 1. set the environment variable PDFium_DIR to the folder containing this file. | ||
6 | -# 2. in your CMakeLists.txt, add | ||
7 | -# find_package(PDFium) | ||
8 | -# 3. then link you excecutable with PDFium | ||
9 | -# target_link_libraries(my_exe pdfium) | ||
10 | - | ||
11 | -include(FindPackageHandleStandardArgs) | ||
12 | - | ||
13 | -find_path(PDFium_INCLUDE_DIR | ||
14 | - NAMES "fpdfview.h" | ||
15 | - PATHS "${CMAKE_CURRENT_LIST_DIR}" | ||
16 | - PATH_SUFFIXES "include" | ||
17 | -) | ||
18 | - | ||
19 | -if(MSVC) | ||
20 | - if(CMAKE_CL_64) | ||
21 | - set(PDFium_ARCH x64) | ||
22 | - else() | ||
23 | - set(PDFium_ARCH x86) | ||
24 | - endif() | ||
25 | - | ||
26 | - find_file(PDFium_LIBRARY | ||
27 | - NAMES "pdfium.dll" | ||
28 | - PATHS "${CMAKE_CURRENT_LIST_DIR}" | ||
29 | - PATH_SUFFIXES "${PDFium_ARCH}/bin") | ||
30 | - | ||
31 | - find_file(PDFium_IMPLIB | ||
32 | - NAMES "pdfium.dll.lib" | ||
33 | - PATHS "${CMAKE_CURRENT_LIST_DIR}" | ||
34 | - PATH_SUFFIXES "${PDFium_ARCH}/lib") | ||
35 | - | ||
36 | - add_library(pdfium SHARED IMPORTED) | ||
37 | - set_target_properties(pdfium | ||
38 | - PROPERTIES | ||
39 | - IMPORTED_LOCATION "${PDFium_LIBRARY}" | ||
40 | - IMPORTED_IMPLIB "${PDFium_IMPLIB}" | ||
41 | - INTERFACE_INCLUDE_DIRECTORIES "${PDFium_INCLUDE_DIR};${PDFium_INCLUDE_DIR}/cpp" | ||
42 | - ) | ||
43 | - | ||
44 | - find_package_handle_standard_args(PDFium | ||
45 | - REQUIRED_VARS PDFium_LIBRARY PDFium_IMPLIB PDFium_INCLUDE_DIR | ||
46 | - ) | ||
47 | -else() | ||
48 | - find_library(PDFium_LIBRARY | ||
49 | - NAMES "pdfium" | ||
50 | - PATHS "${CMAKE_CURRENT_LIST_DIR}" | ||
51 | - PATH_SUFFIXES "lib") | ||
52 | - | ||
53 | - add_library(pdfium SHARED IMPORTED) | ||
54 | - set_target_properties(pdfium | ||
55 | - PROPERTIES | ||
56 | - IMPORTED_LOCATION "${PDFium_LIBRARY}" | ||
57 | - INTERFACE_INCLUDE_DIRECTORIES "${PDFium_INCLUDE_DIR};${PDFium_INCLUDE_DIR}/cpp" | ||
58 | - ) | ||
59 | - | ||
60 | - find_package_handle_standard_args(PDFium | ||
61 | - REQUIRED_VARS PDFium_LIBRARY PDFium_INCLUDE_DIR | ||
62 | - ) | ||
63 | -endif() |
1 | -// Copyright 2017 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -#ifndef PUBLIC_CPP_FPDF_DELETERS_H_ | ||
6 | -#define PUBLIC_CPP_FPDF_DELETERS_H_ | ||
7 | - | ||
8 | -#include "../fpdf_annot.h" | ||
9 | -#include "../fpdf_dataavail.h" | ||
10 | -#include "../fpdf_edit.h" | ||
11 | -#include "../fpdf_formfill.h" | ||
12 | -#include "../fpdf_javascript.h" | ||
13 | -#include "../fpdf_structtree.h" | ||
14 | -#include "../fpdf_text.h" | ||
15 | -#include "../fpdf_transformpage.h" | ||
16 | -#include "../fpdfview.h" | ||
17 | - | ||
18 | -// Custom deleters for using FPDF_* types with std::unique_ptr<>. | ||
19 | - | ||
20 | -struct FPDFAnnotationDeleter { | ||
21 | - inline void operator()(FPDF_ANNOTATION annot) { FPDFPage_CloseAnnot(annot); } | ||
22 | -}; | ||
23 | - | ||
24 | -struct FPDFAvailDeleter { | ||
25 | - inline void operator()(FPDF_AVAIL avail) { FPDFAvail_Destroy(avail); } | ||
26 | -}; | ||
27 | - | ||
28 | -struct FPDFBitmapDeleter { | ||
29 | - inline void operator()(FPDF_BITMAP bitmap) { FPDFBitmap_Destroy(bitmap); } | ||
30 | -}; | ||
31 | - | ||
32 | -struct FPDFClipPathDeleter { | ||
33 | - inline void operator()(FPDF_CLIPPATH clip_path) { | ||
34 | - FPDF_DestroyClipPath(clip_path); | ||
35 | - } | ||
36 | -}; | ||
37 | - | ||
38 | -struct FPDFDocumentDeleter { | ||
39 | - inline void operator()(FPDF_DOCUMENT doc) { FPDF_CloseDocument(doc); } | ||
40 | -}; | ||
41 | - | ||
42 | -struct FPDFFontDeleter { | ||
43 | - inline void operator()(FPDF_FONT font) { FPDFFont_Close(font); } | ||
44 | -}; | ||
45 | - | ||
46 | -struct FPDFFormHandleDeleter { | ||
47 | - inline void operator()(FPDF_FORMHANDLE form) { | ||
48 | - FPDFDOC_ExitFormFillEnvironment(form); | ||
49 | - } | ||
50 | -}; | ||
51 | - | ||
52 | -struct FPDFJavaScriptActionDeleter { | ||
53 | - inline void operator()(FPDF_JAVASCRIPT_ACTION javascript) { | ||
54 | - FPDFDoc_CloseJavaScriptAction(javascript); | ||
55 | - } | ||
56 | -}; | ||
57 | - | ||
58 | -struct FPDFPageDeleter { | ||
59 | - inline void operator()(FPDF_PAGE page) { FPDF_ClosePage(page); } | ||
60 | -}; | ||
61 | - | ||
62 | -struct FPDFPageLinkDeleter { | ||
63 | - inline void operator()(FPDF_PAGELINK pagelink) { | ||
64 | - FPDFLink_CloseWebLinks(pagelink); | ||
65 | - } | ||
66 | -}; | ||
67 | - | ||
68 | -struct FPDFPageObjectDeleter { | ||
69 | - inline void operator()(FPDF_PAGEOBJECT object) { | ||
70 | - FPDFPageObj_Destroy(object); | ||
71 | - } | ||
72 | -}; | ||
73 | - | ||
74 | -struct FPDFStructTreeDeleter { | ||
75 | - inline void operator()(FPDF_STRUCTTREE tree) { FPDF_StructTree_Close(tree); } | ||
76 | -}; | ||
77 | - | ||
78 | -struct FPDFTextFindDeleter { | ||
79 | - inline void operator()(FPDF_SCHHANDLE handle) { FPDFText_FindClose(handle); } | ||
80 | -}; | ||
81 | - | ||
82 | -struct FPDFTextPageDeleter { | ||
83 | - inline void operator()(FPDF_TEXTPAGE text) { FPDFText_ClosePage(text); } | ||
84 | -}; | ||
85 | - | ||
86 | -#endif // PUBLIC_CPP_FPDF_DELETERS_H_ |
1 | -// Copyright 2018 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -#ifndef PUBLIC_CPP_FPDF_SCOPERS_H_ | ||
6 | -#define PUBLIC_CPP_FPDF_SCOPERS_H_ | ||
7 | - | ||
8 | -#include <memory> | ||
9 | -#include <type_traits> | ||
10 | - | ||
11 | -#include "fpdf_deleters.h" | ||
12 | - | ||
13 | -// Versions of FPDF types that clean up the object at scope exit. | ||
14 | - | ||
15 | -using ScopedFPDFAnnotation = | ||
16 | - std::unique_ptr<std::remove_pointer<FPDF_ANNOTATION>::type, | ||
17 | - FPDFAnnotationDeleter>; | ||
18 | - | ||
19 | -using ScopedFPDFAvail = | ||
20 | - std::unique_ptr<std::remove_pointer<FPDF_AVAIL>::type, FPDFAvailDeleter>; | ||
21 | - | ||
22 | -using ScopedFPDFBitmap = | ||
23 | - std::unique_ptr<std::remove_pointer<FPDF_BITMAP>::type, FPDFBitmapDeleter>; | ||
24 | - | ||
25 | -using ScopedFPDFClipPath = | ||
26 | - std::unique_ptr<std::remove_pointer<FPDF_CLIPPATH>::type, | ||
27 | - FPDFClipPathDeleter>; | ||
28 | - | ||
29 | -using ScopedFPDFDocument = | ||
30 | - std::unique_ptr<std::remove_pointer<FPDF_DOCUMENT>::type, | ||
31 | - FPDFDocumentDeleter>; | ||
32 | - | ||
33 | -using ScopedFPDFFont = | ||
34 | - std::unique_ptr<std::remove_pointer<FPDF_FONT>::type, FPDFFontDeleter>; | ||
35 | - | ||
36 | -using ScopedFPDFFormHandle = | ||
37 | - std::unique_ptr<std::remove_pointer<FPDF_FORMHANDLE>::type, | ||
38 | - FPDFFormHandleDeleter>; | ||
39 | - | ||
40 | -using ScopedFPDFJavaScriptAction = | ||
41 | - std::unique_ptr<std::remove_pointer<FPDF_JAVASCRIPT_ACTION>::type, | ||
42 | - FPDFJavaScriptActionDeleter>; | ||
43 | - | ||
44 | -using ScopedFPDFPage = | ||
45 | - std::unique_ptr<std::remove_pointer<FPDF_PAGE>::type, FPDFPageDeleter>; | ||
46 | - | ||
47 | -using ScopedFPDFPageLink = | ||
48 | - std::unique_ptr<std::remove_pointer<FPDF_PAGELINK>::type, | ||
49 | - FPDFPageLinkDeleter>; | ||
50 | - | ||
51 | -using ScopedFPDFPageObject = | ||
52 | - std::unique_ptr<std::remove_pointer<FPDF_PAGEOBJECT>::type, | ||
53 | - FPDFPageObjectDeleter>; | ||
54 | - | ||
55 | -using ScopedFPDFStructTree = | ||
56 | - std::unique_ptr<std::remove_pointer<FPDF_STRUCTTREE>::type, | ||
57 | - FPDFStructTreeDeleter>; | ||
58 | - | ||
59 | -using ScopedFPDFTextFind = | ||
60 | - std::unique_ptr<std::remove_pointer<FPDF_SCHHANDLE>::type, | ||
61 | - FPDFTextFindDeleter>; | ||
62 | - | ||
63 | -using ScopedFPDFTextPage = | ||
64 | - std::unique_ptr<std::remove_pointer<FPDF_TEXTPAGE>::type, | ||
65 | - FPDFTextPageDeleter>; | ||
66 | - | ||
67 | -#endif // PUBLIC_CPP_FPDF_SCOPERS_H_ |
1 | -// Copyright 2017 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -#ifndef PUBLIC_FPDF_ANNOT_H_ | ||
6 | -#define PUBLIC_FPDF_ANNOT_H_ | ||
7 | - | ||
8 | -#include <stddef.h> | ||
9 | - | ||
10 | -// NOLINTNEXTLINE(build/include) | ||
11 | -#include "fpdfview.h" | ||
12 | - | ||
13 | -// NOLINTNEXTLINE(build/include) | ||
14 | -#include "fpdf_doc.h" | ||
15 | -// NOLINTNEXTLINE(build/include) | ||
16 | -#include "fpdf_formfill.h" | ||
17 | - | ||
18 | -#ifdef __cplusplus | ||
19 | -extern "C" { | ||
20 | -#endif // __cplusplus | ||
21 | - | ||
22 | -#define FPDF_ANNOT_UNKNOWN 0 | ||
23 | -#define FPDF_ANNOT_TEXT 1 | ||
24 | -#define FPDF_ANNOT_LINK 2 | ||
25 | -#define FPDF_ANNOT_FREETEXT 3 | ||
26 | -#define FPDF_ANNOT_LINE 4 | ||
27 | -#define FPDF_ANNOT_SQUARE 5 | ||
28 | -#define FPDF_ANNOT_CIRCLE 6 | ||
29 | -#define FPDF_ANNOT_POLYGON 7 | ||
30 | -#define FPDF_ANNOT_POLYLINE 8 | ||
31 | -#define FPDF_ANNOT_HIGHLIGHT 9 | ||
32 | -#define FPDF_ANNOT_UNDERLINE 10 | ||
33 | -#define FPDF_ANNOT_SQUIGGLY 11 | ||
34 | -#define FPDF_ANNOT_STRIKEOUT 12 | ||
35 | -#define FPDF_ANNOT_STAMP 13 | ||
36 | -#define FPDF_ANNOT_CARET 14 | ||
37 | -#define FPDF_ANNOT_INK 15 | ||
38 | -#define FPDF_ANNOT_POPUP 16 | ||
39 | -#define FPDF_ANNOT_FILEATTACHMENT 17 | ||
40 | -#define FPDF_ANNOT_SOUND 18 | ||
41 | -#define FPDF_ANNOT_MOVIE 19 | ||
42 | -#define FPDF_ANNOT_WIDGET 20 | ||
43 | -#define FPDF_ANNOT_SCREEN 21 | ||
44 | -#define FPDF_ANNOT_PRINTERMARK 22 | ||
45 | -#define FPDF_ANNOT_TRAPNET 23 | ||
46 | -#define FPDF_ANNOT_WATERMARK 24 | ||
47 | -#define FPDF_ANNOT_THREED 25 | ||
48 | -#define FPDF_ANNOT_RICHMEDIA 26 | ||
49 | -#define FPDF_ANNOT_XFAWIDGET 27 | ||
50 | - | ||
51 | -// Refer to PDF Reference (6th edition) table 8.16 for all annotation flags. | ||
52 | -#define FPDF_ANNOT_FLAG_NONE 0 | ||
53 | -#define FPDF_ANNOT_FLAG_INVISIBLE (1 << 0) | ||
54 | -#define FPDF_ANNOT_FLAG_HIDDEN (1 << 1) | ||
55 | -#define FPDF_ANNOT_FLAG_PRINT (1 << 2) | ||
56 | -#define FPDF_ANNOT_FLAG_NOZOOM (1 << 3) | ||
57 | -#define FPDF_ANNOT_FLAG_NOROTATE (1 << 4) | ||
58 | -#define FPDF_ANNOT_FLAG_NOVIEW (1 << 5) | ||
59 | -#define FPDF_ANNOT_FLAG_READONLY (1 << 6) | ||
60 | -#define FPDF_ANNOT_FLAG_LOCKED (1 << 7) | ||
61 | -#define FPDF_ANNOT_FLAG_TOGGLENOVIEW (1 << 8) | ||
62 | - | ||
63 | -#define FPDF_ANNOT_APPEARANCEMODE_NORMAL 0 | ||
64 | -#define FPDF_ANNOT_APPEARANCEMODE_ROLLOVER 1 | ||
65 | -#define FPDF_ANNOT_APPEARANCEMODE_DOWN 2 | ||
66 | -#define FPDF_ANNOT_APPEARANCEMODE_COUNT 3 | ||
67 | - | ||
68 | -// Refer to PDF Reference version 1.7 table 8.70 for field flags common to all | ||
69 | -// interactive form field types. | ||
70 | -#define FPDF_FORMFLAG_NONE 0 | ||
71 | -#define FPDF_FORMFLAG_READONLY (1 << 0) | ||
72 | -#define FPDF_FORMFLAG_REQUIRED (1 << 1) | ||
73 | -#define FPDF_FORMFLAG_NOEXPORT (1 << 2) | ||
74 | - | ||
75 | -// Refer to PDF Reference version 1.7 table 8.77 for field flags specific to | ||
76 | -// interactive form text fields. | ||
77 | -#define FPDF_FORMFLAG_TEXT_MULTILINE (1 << 12) | ||
78 | -#define FPDF_FORMFLAG_TEXT_PASSWORD (1 << 13) | ||
79 | - | ||
80 | -// Refer to PDF Reference version 1.7 table 8.79 for field flags specific to | ||
81 | -// interactive form choice fields. | ||
82 | -#define FPDF_FORMFLAG_CHOICE_COMBO (1 << 17) | ||
83 | -#define FPDF_FORMFLAG_CHOICE_EDIT (1 << 18) | ||
84 | -#define FPDF_FORMFLAG_CHOICE_MULTI_SELECT (1 << 21) | ||
85 | - | ||
86 | -typedef enum FPDFANNOT_COLORTYPE { | ||
87 | - FPDFANNOT_COLORTYPE_Color = 0, | ||
88 | - FPDFANNOT_COLORTYPE_InteriorColor | ||
89 | -} FPDFANNOT_COLORTYPE; | ||
90 | - | ||
91 | -// Experimental API. | ||
92 | -// Check if an annotation subtype is currently supported for creation. | ||
93 | -// Currently supported subtypes: circle, highlight, ink, popup, square, | ||
94 | -// squiggly, stamp, strikeout, text, and underline. | ||
95 | -// | ||
96 | -// subtype - the subtype to be checked. | ||
97 | -// | ||
98 | -// Returns true if this subtype supported. | ||
99 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
100 | -FPDFAnnot_IsSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype); | ||
101 | - | ||
102 | -// Experimental API. | ||
103 | -// Create an annotation in |page| of the subtype |subtype|. If the specified | ||
104 | -// subtype is illegal or unsupported, then a new annotation will not be created. | ||
105 | -// Must call FPDFPage_CloseAnnot() when the annotation returned by this | ||
106 | -// function is no longer needed. | ||
107 | -// | ||
108 | -// page - handle to a page. | ||
109 | -// subtype - the subtype of the new annotation. | ||
110 | -// | ||
111 | -// Returns a handle to the new annotation object, or NULL on failure. | ||
112 | -FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV | ||
113 | -FPDFPage_CreateAnnot(FPDF_PAGE page, FPDF_ANNOTATION_SUBTYPE subtype); | ||
114 | - | ||
115 | -// Experimental API. | ||
116 | -// Get the number of annotations in |page|. | ||
117 | -// | ||
118 | -// page - handle to a page. | ||
119 | -// | ||
120 | -// Returns the number of annotations in |page|. | ||
121 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotCount(FPDF_PAGE page); | ||
122 | - | ||
123 | -// Experimental API. | ||
124 | -// Get annotation in |page| at |index|. Must call FPDFPage_CloseAnnot() when the | ||
125 | -// annotation returned by this function is no longer needed. | ||
126 | -// | ||
127 | -// page - handle to a page. | ||
128 | -// index - the index of the annotation. | ||
129 | -// | ||
130 | -// Returns a handle to the annotation object, or NULL on failure. | ||
131 | -FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFPage_GetAnnot(FPDF_PAGE page, | ||
132 | - int index); | ||
133 | - | ||
134 | -// Experimental API. | ||
135 | -// Get the index of |annot| in |page|. This is the opposite of | ||
136 | -// FPDFPage_GetAnnot(). | ||
137 | -// | ||
138 | -// page - handle to the page that the annotation is on. | ||
139 | -// annot - handle to an annotation. | ||
140 | -// | ||
141 | -// Returns the index of |annot|, or -1 on failure. | ||
142 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotIndex(FPDF_PAGE page, | ||
143 | - FPDF_ANNOTATION annot); | ||
144 | - | ||
145 | -// Experimental API. | ||
146 | -// Close an annotation. Must be called when the annotation returned by | ||
147 | -// FPDFPage_CreateAnnot() or FPDFPage_GetAnnot() is no longer needed. This | ||
148 | -// function does not remove the annotation from the document. | ||
149 | -// | ||
150 | -// annot - handle to an annotation. | ||
151 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPage_CloseAnnot(FPDF_ANNOTATION annot); | ||
152 | - | ||
153 | -// Experimental API. | ||
154 | -// Remove the annotation in |page| at |index|. | ||
155 | -// | ||
156 | -// page - handle to a page. | ||
157 | -// index - the index of the annotation. | ||
158 | -// | ||
159 | -// Returns true if successful. | ||
160 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_RemoveAnnot(FPDF_PAGE page, | ||
161 | - int index); | ||
162 | - | ||
163 | -// Experimental API. | ||
164 | -// Get the subtype of an annotation. | ||
165 | -// | ||
166 | -// annot - handle to an annotation. | ||
167 | -// | ||
168 | -// Returns the annotation subtype. | ||
169 | -FPDF_EXPORT FPDF_ANNOTATION_SUBTYPE FPDF_CALLCONV | ||
170 | -FPDFAnnot_GetSubtype(FPDF_ANNOTATION annot); | ||
171 | - | ||
172 | -// Experimental API. | ||
173 | -// Check if an annotation subtype is currently supported for object extraction, | ||
174 | -// update, and removal. | ||
175 | -// Currently supported subtypes: ink and stamp. | ||
176 | -// | ||
177 | -// subtype - the subtype to be checked. | ||
178 | -// | ||
179 | -// Returns true if this subtype supported. | ||
180 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
181 | -FPDFAnnot_IsObjectSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype); | ||
182 | - | ||
183 | -// Experimental API. | ||
184 | -// Update |obj| in |annot|. |obj| must be in |annot| already and must have | ||
185 | -// been retrieved by FPDFAnnot_GetObject(). Currently, only ink and stamp | ||
186 | -// annotations are supported by this API. Also note that only path, image, and | ||
187 | -// text objects have APIs for modification; see FPDFPath_*(), FPDFText_*(), and | ||
188 | -// FPDFImageObj_*(). | ||
189 | -// | ||
190 | -// annot - handle to an annotation. | ||
191 | -// obj - handle to the object that |annot| needs to update. | ||
192 | -// | ||
193 | -// Return true if successful. | ||
194 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
195 | -FPDFAnnot_UpdateObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj); | ||
196 | - | ||
197 | -// Experimental API. | ||
198 | -// Add a new InkStroke, represented by an array of points, to the InkList of | ||
199 | -// |annot|. The API creates an InkList if one doesn't already exist in |annot|. | ||
200 | -// This API works only for ink annotations. Please refer section 12.5.6.13 in | ||
201 | -// PDF 32000-1:2008 Specification. | ||
202 | -// | ||
203 | -// annot - handle to an annotation. | ||
204 | -// points - pointer to a FS_POINTF array representing input points. | ||
205 | -// point_count - number of elements in |points| array. This should not exceed | ||
206 | -// the maximum value that can be represented by an int32_t). | ||
207 | -// | ||
208 | -// Returns the 0-based index at which the new InkStroke is added in the InkList | ||
209 | -// of the |annot|. Returns -1 on failure. | ||
210 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_AddInkStroke(FPDF_ANNOTATION annot, | ||
211 | - const FS_POINTF* points, | ||
212 | - size_t point_count); | ||
213 | - | ||
214 | -// Experimental API. | ||
215 | -// Removes an InkList in |annot|. | ||
216 | -// This API works only for ink annotations. | ||
217 | -// | ||
218 | -// annot - handle to an annotation. | ||
219 | -// | ||
220 | -// Return true on successful removal of /InkList entry from context of the | ||
221 | -// non-null ink |annot|. Returns false on failure. | ||
222 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
223 | -FPDFAnnot_RemoveInkList(FPDF_ANNOTATION annot); | ||
224 | - | ||
225 | -// Experimental API. | ||
226 | -// Add |obj| to |annot|. |obj| must have been created by | ||
227 | -// FPDFPageObj_CreateNew{Path|Rect}() or FPDFPageObj_New{Text|Image}Obj(), and | ||
228 | -// will be owned by |annot|. Note that an |obj| cannot belong to more than one | ||
229 | -// |annot|. Currently, only ink and stamp annotations are supported by this API. | ||
230 | -// Also note that only path, image, and text objects have APIs for creation. | ||
231 | -// | ||
232 | -// annot - handle to an annotation. | ||
233 | -// obj - handle to the object that is to be added to |annot|. | ||
234 | -// | ||
235 | -// Return true if successful. | ||
236 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
237 | -FPDFAnnot_AppendObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj); | ||
238 | - | ||
239 | -// Experimental API. | ||
240 | -// Get the total number of objects in |annot|, including path objects, text | ||
241 | -// objects, external objects, image objects, and shading objects. | ||
242 | -// | ||
243 | -// annot - handle to an annotation. | ||
244 | -// | ||
245 | -// Returns the number of objects in |annot|. | ||
246 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetObjectCount(FPDF_ANNOTATION annot); | ||
247 | - | ||
248 | -// Experimental API. | ||
249 | -// Get the object in |annot| at |index|. | ||
250 | -// | ||
251 | -// annot - handle to an annotation. | ||
252 | -// index - the index of the object. | ||
253 | -// | ||
254 | -// Return a handle to the object, or NULL on failure. | ||
255 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV | ||
256 | -FPDFAnnot_GetObject(FPDF_ANNOTATION annot, int index); | ||
257 | - | ||
258 | -// Experimental API. | ||
259 | -// Remove the object in |annot| at |index|. | ||
260 | -// | ||
261 | -// annot - handle to an annotation. | ||
262 | -// index - the index of the object to be removed. | ||
263 | -// | ||
264 | -// Return true if successful. | ||
265 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
266 | -FPDFAnnot_RemoveObject(FPDF_ANNOTATION annot, int index); | ||
267 | - | ||
268 | -// Experimental API. | ||
269 | -// Set the color of an annotation. Fails when called on annotations with | ||
270 | -// appearance streams already defined; instead use | ||
271 | -// FPDFPath_Set{Stroke|Fill}Color(). | ||
272 | -// | ||
273 | -// annot - handle to an annotation. | ||
274 | -// type - type of the color to be set. | ||
275 | -// R, G, B - buffer to hold the RGB value of the color. Ranges from 0 to 255. | ||
276 | -// A - buffer to hold the opacity. Ranges from 0 to 255. | ||
277 | -// | ||
278 | -// Returns true if successful. | ||
279 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetColor(FPDF_ANNOTATION annot, | ||
280 | - FPDFANNOT_COLORTYPE type, | ||
281 | - unsigned int R, | ||
282 | - unsigned int G, | ||
283 | - unsigned int B, | ||
284 | - unsigned int A); | ||
285 | - | ||
286 | -// Experimental API. | ||
287 | -// Get the color of an annotation. If no color is specified, default to yellow | ||
288 | -// for highlight annotation, black for all else. Fails when called on | ||
289 | -// annotations with appearance streams already defined; instead use | ||
290 | -// FPDFPath_Get{Stroke|Fill}Color(). | ||
291 | -// | ||
292 | -// annot - handle to an annotation. | ||
293 | -// type - type of the color requested. | ||
294 | -// R, G, B - buffer to hold the RGB value of the color. Ranges from 0 to 255. | ||
295 | -// A - buffer to hold the opacity. Ranges from 0 to 255. | ||
296 | -// | ||
297 | -// Returns true if successful. | ||
298 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetColor(FPDF_ANNOTATION annot, | ||
299 | - FPDFANNOT_COLORTYPE type, | ||
300 | - unsigned int* R, | ||
301 | - unsigned int* G, | ||
302 | - unsigned int* B, | ||
303 | - unsigned int* A); | ||
304 | - | ||
305 | -// Experimental API. | ||
306 | -// Check if the annotation is of a type that has attachment points | ||
307 | -// (i.e. quadpoints). Quadpoints are the vertices of the rectangle that | ||
308 | -// encompasses the texts affected by the annotation. They provide the | ||
309 | -// coordinates in the page where the annotation is attached. Only text markup | ||
310 | -// annotations (i.e. highlight, strikeout, squiggly, and underline) and link | ||
311 | -// annotations have quadpoints. | ||
312 | -// | ||
313 | -// annot - handle to an annotation. | ||
314 | -// | ||
315 | -// Returns true if the annotation is of a type that has quadpoints, false | ||
316 | -// otherwise. | ||
317 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
318 | -FPDFAnnot_HasAttachmentPoints(FPDF_ANNOTATION annot); | ||
319 | - | ||
320 | -// Experimental API. | ||
321 | -// Replace the attachment points (i.e. quadpoints) set of an annotation at | ||
322 | -// |quad_index|. This index needs to be within the result of | ||
323 | -// FPDFAnnot_CountAttachmentPoints(). | ||
324 | -// If the annotation's appearance stream is defined and this annotation is of a | ||
325 | -// type with quadpoints, then update the bounding box too if the new quadpoints | ||
326 | -// define a bigger one. | ||
327 | -// | ||
328 | -// annot - handle to an annotation. | ||
329 | -// quad_index - index of the set of quadpoints. | ||
330 | -// quad_points - the quadpoints to be set. | ||
331 | -// | ||
332 | -// Returns true if successful. | ||
333 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
334 | -FPDFAnnot_SetAttachmentPoints(FPDF_ANNOTATION annot, | ||
335 | - size_t quad_index, | ||
336 | - const FS_QUADPOINTSF* quad_points); | ||
337 | - | ||
338 | -// Experimental API. | ||
339 | -// Append to the list of attachment points (i.e. quadpoints) of an annotation. | ||
340 | -// If the annotation's appearance stream is defined and this annotation is of a | ||
341 | -// type with quadpoints, then update the bounding box too if the new quadpoints | ||
342 | -// define a bigger one. | ||
343 | -// | ||
344 | -// annot - handle to an annotation. | ||
345 | -// quad_points - the quadpoints to be set. | ||
346 | -// | ||
347 | -// Returns true if successful. | ||
348 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
349 | -FPDFAnnot_AppendAttachmentPoints(FPDF_ANNOTATION annot, | ||
350 | - const FS_QUADPOINTSF* quad_points); | ||
351 | - | ||
352 | -// Experimental API. | ||
353 | -// Get the number of sets of quadpoints of an annotation. | ||
354 | -// | ||
355 | -// annot - handle to an annotation. | ||
356 | -// | ||
357 | -// Returns the number of sets of quadpoints, or 0 on failure. | ||
358 | -FPDF_EXPORT size_t FPDF_CALLCONV | ||
359 | -FPDFAnnot_CountAttachmentPoints(FPDF_ANNOTATION annot); | ||
360 | - | ||
361 | -// Experimental API. | ||
362 | -// Get the attachment points (i.e. quadpoints) of an annotation. | ||
363 | -// | ||
364 | -// annot - handle to an annotation. | ||
365 | -// quad_index - index of the set of quadpoints. | ||
366 | -// quad_points - receives the quadpoints; must not be NULL. | ||
367 | -// | ||
368 | -// Returns true if successful. | ||
369 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
370 | -FPDFAnnot_GetAttachmentPoints(FPDF_ANNOTATION annot, | ||
371 | - size_t quad_index, | ||
372 | - FS_QUADPOINTSF* quad_points); | ||
373 | - | ||
374 | -// Experimental API. | ||
375 | -// Set the annotation rectangle defining the location of the annotation. If the | ||
376 | -// annotation's appearance stream is defined and this annotation is of a type | ||
377 | -// without quadpoints, then update the bounding box too if the new rectangle | ||
378 | -// defines a bigger one. | ||
379 | -// | ||
380 | -// annot - handle to an annotation. | ||
381 | -// rect - the annotation rectangle to be set. | ||
382 | -// | ||
383 | -// Returns true if successful. | ||
384 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetRect(FPDF_ANNOTATION annot, | ||
385 | - const FS_RECTF* rect); | ||
386 | - | ||
387 | -// Experimental API. | ||
388 | -// Get the annotation rectangle defining the location of the annotation. | ||
389 | -// | ||
390 | -// annot - handle to an annotation. | ||
391 | -// rect - receives the rectangle; must not be NULL. | ||
392 | -// | ||
393 | -// Returns true if successful. | ||
394 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetRect(FPDF_ANNOTATION annot, | ||
395 | - FS_RECTF* rect); | ||
396 | - | ||
397 | -// Experimental API. | ||
398 | -// Check if |annot|'s dictionary has |key| as a key. | ||
399 | -// | ||
400 | -// annot - handle to an annotation. | ||
401 | -// key - the key to look for, encoded in UTF-8. | ||
402 | -// | ||
403 | -// Returns true if |key| exists. | ||
404 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_HasKey(FPDF_ANNOTATION annot, | ||
405 | - FPDF_BYTESTRING key); | ||
406 | - | ||
407 | -// Experimental API. | ||
408 | -// Get the type of the value corresponding to |key| in |annot|'s dictionary. | ||
409 | -// | ||
410 | -// annot - handle to an annotation. | ||
411 | -// key - the key to look for, encoded in UTF-8. | ||
412 | -// | ||
413 | -// Returns the type of the dictionary value. | ||
414 | -FPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV | ||
415 | -FPDFAnnot_GetValueType(FPDF_ANNOTATION annot, FPDF_BYTESTRING key); | ||
416 | - | ||
417 | -// Experimental API. | ||
418 | -// Set the string value corresponding to |key| in |annot|'s dictionary, | ||
419 | -// overwriting the existing value if any. The value type would be | ||
420 | -// FPDF_OBJECT_STRING after this function call succeeds. | ||
421 | -// | ||
422 | -// annot - handle to an annotation. | ||
423 | -// key - the key to the dictionary entry to be set, encoded in UTF-8. | ||
424 | -// value - the string value to be set, encoded in UTF-16LE. | ||
425 | -// | ||
426 | -// Returns true if successful. | ||
427 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
428 | -FPDFAnnot_SetStringValue(FPDF_ANNOTATION annot, | ||
429 | - FPDF_BYTESTRING key, | ||
430 | - FPDF_WIDESTRING value); | ||
431 | - | ||
432 | -// Experimental API. | ||
433 | -// Get the string value corresponding to |key| in |annot|'s dictionary. |buffer| | ||
434 | -// is only modified if |buflen| is longer than the length of contents. Note that | ||
435 | -// if |key| does not exist in the dictionary or if |key|'s corresponding value | ||
436 | -// in the dictionary is not a string (i.e. the value is not of type | ||
437 | -// FPDF_OBJECT_STRING or FPDF_OBJECT_NAME), then an empty string would be copied | ||
438 | -// to |buffer| and the return value would be 2. On other errors, nothing would | ||
439 | -// be added to |buffer| and the return value would be 0. | ||
440 | -// | ||
441 | -// annot - handle to an annotation. | ||
442 | -// key - the key to the requested dictionary entry, encoded in UTF-8. | ||
443 | -// buffer - buffer for holding the value string, encoded in UTF-16LE. | ||
444 | -// buflen - length of the buffer in bytes. | ||
445 | -// | ||
446 | -// Returns the length of the string value in bytes. | ||
447 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
448 | -FPDFAnnot_GetStringValue(FPDF_ANNOTATION annot, | ||
449 | - FPDF_BYTESTRING key, | ||
450 | - FPDF_WCHAR* buffer, | ||
451 | - unsigned long buflen); | ||
452 | - | ||
453 | -// Experimental API. | ||
454 | -// Get the float value corresponding to |key| in |annot|'s dictionary. Writes | ||
455 | -// value to |value| and returns True if |key| exists in the dictionary and | ||
456 | -// |key|'s corresponding value is a number (FPDF_OBJECT_NUMBER), False | ||
457 | -// otherwise. | ||
458 | -// | ||
459 | -// annot - handle to an annotation. | ||
460 | -// key - the key to the requested dictionary entry, encoded in UTF-8. | ||
461 | -// value - receives the value, must not be NULL. | ||
462 | -// | ||
463 | -// Returns True if value found, False otherwise. | ||
464 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
465 | -FPDFAnnot_GetNumberValue(FPDF_ANNOTATION annot, | ||
466 | - FPDF_BYTESTRING key, | ||
467 | - float* value); | ||
468 | - | ||
469 | -// Experimental API. | ||
470 | -// Set the AP (appearance string) in |annot|'s dictionary for a given | ||
471 | -// |appearanceMode|. | ||
472 | -// | ||
473 | -// annot - handle to an annotation. | ||
474 | -// appearanceMode - the appearance mode (normal, rollover or down) for which | ||
475 | -// to get the AP. | ||
476 | -// value - the string value to be set, encoded in UTF-16LE. If | ||
477 | -// nullptr is passed, the AP is cleared for that mode. If the | ||
478 | -// mode is Normal, APs for all modes are cleared. | ||
479 | -// | ||
480 | -// Returns true if successful. | ||
481 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
482 | -FPDFAnnot_SetAP(FPDF_ANNOTATION annot, | ||
483 | - FPDF_ANNOT_APPEARANCEMODE appearanceMode, | ||
484 | - FPDF_WIDESTRING value); | ||
485 | - | ||
486 | -// Experimental API. | ||
487 | -// Get the AP (appearance string) from |annot|'s dictionary for a given | ||
488 | -// |appearanceMode|. | ||
489 | -// |buffer| is only modified if |buflen| is large enough to hold the whole AP | ||
490 | -// string. If |buflen| is smaller, the total size of the AP is still returned, | ||
491 | -// but nothing is copied. | ||
492 | -// If there is no appearance stream for |annot| in |appearanceMode|, an empty | ||
493 | -// string is written to |buf| and 2 is returned. | ||
494 | -// On other errors, nothing is written to |buffer| and 0 is returned. | ||
495 | -// | ||
496 | -// annot - handle to an annotation. | ||
497 | -// appearanceMode - the appearance mode (normal, rollover or down) for which | ||
498 | -// to get the AP. | ||
499 | -// buffer - buffer for holding the value string, encoded in UTF-16LE. | ||
500 | -// buflen - length of the buffer in bytes. | ||
501 | -// | ||
502 | -// Returns the length of the string value in bytes. | ||
503 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
504 | -FPDFAnnot_GetAP(FPDF_ANNOTATION annot, | ||
505 | - FPDF_ANNOT_APPEARANCEMODE appearanceMode, | ||
506 | - FPDF_WCHAR* buffer, | ||
507 | - unsigned long buflen); | ||
508 | - | ||
509 | -// Experimental API. | ||
510 | -// Get the annotation corresponding to |key| in |annot|'s dictionary. Common | ||
511 | -// keys for linking annotations include "IRT" and "Popup". Must call | ||
512 | -// FPDFPage_CloseAnnot() when the annotation returned by this function is no | ||
513 | -// longer needed. | ||
514 | -// | ||
515 | -// annot - handle to an annotation. | ||
516 | -// key - the key to the requested dictionary entry, encoded in UTF-8. | ||
517 | -// | ||
518 | -// Returns a handle to the linked annotation object, or NULL on failure. | ||
519 | -FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV | ||
520 | -FPDFAnnot_GetLinkedAnnot(FPDF_ANNOTATION annot, FPDF_BYTESTRING key); | ||
521 | - | ||
522 | -// Experimental API. | ||
523 | -// Get the annotation flags of |annot|. | ||
524 | -// | ||
525 | -// annot - handle to an annotation. | ||
526 | -// | ||
527 | -// Returns the annotation flags. | ||
528 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFlags(FPDF_ANNOTATION annot); | ||
529 | - | ||
530 | -// Experimental API. | ||
531 | -// Set the |annot|'s flags to be of the value |flags|. | ||
532 | -// | ||
533 | -// annot - handle to an annotation. | ||
534 | -// flags - the flag values to be set. | ||
535 | -// | ||
536 | -// Returns true if successful. | ||
537 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetFlags(FPDF_ANNOTATION annot, | ||
538 | - int flags); | ||
539 | - | ||
540 | -// Experimental API. | ||
541 | -// Get the annotation flags of |annot|. | ||
542 | -// | ||
543 | -// hHandle - handle to the form fill module, returned by | ||
544 | -// FPDFDOC_InitFormFillEnvironment(). | ||
545 | -// annot - handle to an interactive form annotation. | ||
546 | -// | ||
547 | -// Returns the annotation flags specific to interactive forms. | ||
548 | -FPDF_EXPORT int FPDF_CALLCONV | ||
549 | -FPDFAnnot_GetFormFieldFlags(FPDF_FORMHANDLE handle, FPDF_ANNOTATION annot); | ||
550 | - | ||
551 | -// Experimental API. | ||
552 | -// Retrieves an interactive form annotation whose rectangle contains a given | ||
553 | -// point on a page. Must call FPDFPage_CloseAnnot() when the annotation returned | ||
554 | -// is no longer needed. | ||
555 | -// | ||
556 | -// | ||
557 | -// hHandle - handle to the form fill module, returned by | ||
558 | -// FPDFDOC_InitFormFillEnvironment(). | ||
559 | -// page - handle to the page, returned by FPDF_LoadPage function. | ||
560 | -// point - position in PDF "user space". | ||
561 | -// | ||
562 | -// Returns the interactive form annotation whose rectangle contains the given | ||
563 | -// coordinates on the page. If there is no such annotation, return NULL. | ||
564 | -FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV | ||
565 | -FPDFAnnot_GetFormFieldAtPoint(FPDF_FORMHANDLE hHandle, | ||
566 | - FPDF_PAGE page, | ||
567 | - const FS_POINTF* point); | ||
568 | - | ||
569 | -// Experimental API. | ||
570 | -// Gets the name of |annot|, which is an interactive form annotation. | ||
571 | -// |buffer| is only modified if |buflen| is longer than the length of contents. | ||
572 | -// In case of error, nothing will be added to |buffer| and the return value will | ||
573 | -// be 0. Note that return value of empty string is 2 for "\0\0". | ||
574 | -// | ||
575 | -// hHandle - handle to the form fill module, returned by | ||
576 | -// FPDFDOC_InitFormFillEnvironment(). | ||
577 | -// annot - handle to an interactive form annotation. | ||
578 | -// buffer - buffer for holding the name string, encoded in UTF-16LE. | ||
579 | -// buflen - length of the buffer in bytes. | ||
580 | -// | ||
581 | -// Returns the length of the string value in bytes. | ||
582 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
583 | -FPDFAnnot_GetFormFieldName(FPDF_FORMHANDLE hHandle, | ||
584 | - FPDF_ANNOTATION annot, | ||
585 | - FPDF_WCHAR* buffer, | ||
586 | - unsigned long buflen); | ||
587 | - | ||
588 | -// Experimental API. | ||
589 | -// Gets the form field type of |annot|, which is an interactive form annotation. | ||
590 | -// | ||
591 | -// hHandle - handle to the form fill module, returned by | ||
592 | -// FPDFDOC_InitFormFillEnvironment(). | ||
593 | -// annot - handle to an interactive form annotation. | ||
594 | -// | ||
595 | -// Returns the type of the form field (one of the FPDF_FORMFIELD_* values) on | ||
596 | -// success. Returns -1 on error. | ||
597 | -// See field types in fpdf_formfill.h. | ||
598 | -FPDF_EXPORT int FPDF_CALLCONV | ||
599 | -FPDFAnnot_GetFormFieldType(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot); | ||
600 | - | ||
601 | -// Experimental API. | ||
602 | -// Gets the value of |annot|, which is an interactive form annotation. | ||
603 | -// |buffer| is only modified if |buflen| is longer than the length of contents. | ||
604 | -// In case of error, nothing will be added to |buffer| and the return value will | ||
605 | -// be 0. Note that return value of empty string is 2 for "\0\0". | ||
606 | -// | ||
607 | -// hHandle - handle to the form fill module, returned by | ||
608 | -// FPDFDOC_InitFormFillEnvironment(). | ||
609 | -// annot - handle to an interactive form annotation. | ||
610 | -// buffer - buffer for holding the value string, encoded in UTF-16LE. | ||
611 | -// buflen - length of the buffer in bytes. | ||
612 | -// | ||
613 | -// Returns the length of the string value in bytes. | ||
614 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
615 | -FPDFAnnot_GetFormFieldValue(FPDF_FORMHANDLE hHandle, | ||
616 | - FPDF_ANNOTATION annot, | ||
617 | - FPDF_WCHAR* buffer, | ||
618 | - unsigned long buflen); | ||
619 | - | ||
620 | -// Experimental API. | ||
621 | -// Get the number of options in the |annot|'s "Opt" dictionary. Intended for | ||
622 | -// use with listbox and combobox widget annotations. | ||
623 | -// | ||
624 | -// hHandle - handle to the form fill module, returned by | ||
625 | -// FPDFDOC_InitFormFillEnvironment. | ||
626 | -// annot - handle to an annotation. | ||
627 | -// | ||
628 | -// Returns the number of options in "Opt" dictionary on success. Return value | ||
629 | -// will be -1 if annotation does not have an "Opt" dictionary or other error. | ||
630 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetOptionCount(FPDF_FORMHANDLE hHandle, | ||
631 | - FPDF_ANNOTATION annot); | ||
632 | - | ||
633 | -// Experimental API. | ||
634 | -// Get the string value for the label of the option at |index| in |annot|'s | ||
635 | -// "Opt" dictionary. Intended for use with listbox and combobox widget | ||
636 | -// annotations. |buffer| is only modified if |buflen| is longer than the length | ||
637 | -// of contents. If index is out of range or in case of other error, nothing | ||
638 | -// will be added to |buffer| and the return value will be 0. Note that | ||
639 | -// return value of empty string is 2 for "\0\0". | ||
640 | -// | ||
641 | -// hHandle - handle to the form fill module, returned by | ||
642 | -// FPDFDOC_InitFormFillEnvironment. | ||
643 | -// annot - handle to an annotation. | ||
644 | -// index - numeric index of the option in the "Opt" array | ||
645 | -// buffer - buffer for holding the value string, encoded in UTF-16LE. | ||
646 | -// buflen - length of the buffer in bytes. | ||
647 | -// | ||
648 | -// Returns the length of the string value in bytes. | ||
649 | -// If |annot| does not have an "Opt" array, |index| is out of range or if any | ||
650 | -// other error occurs, returns 0. | ||
651 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
652 | -FPDFAnnot_GetOptionLabel(FPDF_FORMHANDLE hHandle, | ||
653 | - FPDF_ANNOTATION annot, | ||
654 | - int index, | ||
655 | - FPDF_WCHAR* buffer, | ||
656 | - unsigned long buflen); | ||
657 | - | ||
658 | -// Experimental API. | ||
659 | -// Determine whether or not the option at |index| in |annot|'s "Opt" dictionary | ||
660 | -// is selected. Intended for use with listbox and combobox widget annotations. | ||
661 | -// | ||
662 | -// handle - handle to the form fill module, returned by | ||
663 | -// FPDFDOC_InitFormFillEnvironment. | ||
664 | -// annot - handle to an annotation. | ||
665 | -// index - numeric index of the option in the "Opt" array. | ||
666 | -// | ||
667 | -// Returns true if the option at |index| in |annot|'s "Opt" dictionary is | ||
668 | -// selected, false otherwise. | ||
669 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
670 | -FPDFAnnot_IsOptionSelected(FPDF_FORMHANDLE handle, | ||
671 | - FPDF_ANNOTATION annot, | ||
672 | - int index); | ||
673 | - | ||
674 | -// Experimental API. | ||
675 | -// Get the float value of the font size for an |annot| with variable text. | ||
676 | -// If 0, the font is to be auto-sized: its size is computed as a function of | ||
677 | -// the height of the annotation rectangle. | ||
678 | -// | ||
679 | -// hHandle - handle to the form fill module, returned by | ||
680 | -// FPDFDOC_InitFormFillEnvironment. | ||
681 | -// annot - handle to an annotation. | ||
682 | -// value - Required. Float which will be set to font size on success. | ||
683 | -// | ||
684 | -// Returns true if the font size was set in |value|, false on error or if | ||
685 | -// |value| not provided. | ||
686 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
687 | -FPDFAnnot_GetFontSize(FPDF_FORMHANDLE hHandle, | ||
688 | - FPDF_ANNOTATION annot, | ||
689 | - float* value); | ||
690 | - | ||
691 | -// Experimental API. | ||
692 | -// Determine if |annot| is a form widget that is checked. Intended for use with | ||
693 | -// checkbox and radio button widgets. | ||
694 | -// | ||
695 | -// hHandle - handle to the form fill module, returned by | ||
696 | -// FPDFDOC_InitFormFillEnvironment. | ||
697 | -// annot - handle to an annotation. | ||
698 | -// | ||
699 | -// Returns true if |annot| is a form widget and is checked, false otherwise. | ||
700 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_IsChecked(FPDF_FORMHANDLE hHandle, | ||
701 | - FPDF_ANNOTATION annot); | ||
702 | - | ||
703 | -// Experimental API. | ||
704 | -// Set the list of focusable annotation subtypes. Annotations of subtype | ||
705 | -// FPDF_ANNOT_WIDGET are by default focusable. New subtypes set using this API | ||
706 | -// will override the existing subtypes. | ||
707 | -// | ||
708 | -// hHandle - handle to the form fill module, returned by | ||
709 | -// FPDFDOC_InitFormFillEnvironment. | ||
710 | -// subtypes - list of annotation subtype which can be tabbed over. | ||
711 | -// count - total number of annotation subtype in list. | ||
712 | -// Returns true if list of annotation subtype is set successfully, false | ||
713 | -// otherwise. | ||
714 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
715 | -FPDFAnnot_SetFocusableSubtypes(FPDF_FORMHANDLE hHandle, | ||
716 | - const FPDF_ANNOTATION_SUBTYPE* subtypes, | ||
717 | - size_t count); | ||
718 | - | ||
719 | -// Experimental API. | ||
720 | -// Get the count of focusable annotation subtypes as set by host | ||
721 | -// for a |hHandle|. | ||
722 | -// | ||
723 | -// hHandle - handle to the form fill module, returned by | ||
724 | -// FPDFDOC_InitFormFillEnvironment. | ||
725 | -// Returns the count of focusable annotation subtypes or -1 on error. | ||
726 | -// Note : Annotations of type FPDF_ANNOT_WIDGET are by default focusable. | ||
727 | -FPDF_EXPORT int FPDF_CALLCONV | ||
728 | -FPDFAnnot_GetFocusableSubtypesCount(FPDF_FORMHANDLE hHandle); | ||
729 | - | ||
730 | -// Experimental API. | ||
731 | -// Get the list of focusable annotation subtype as set by host. | ||
732 | -// | ||
733 | -// hHandle - handle to the form fill module, returned by | ||
734 | -// FPDFDOC_InitFormFillEnvironment. | ||
735 | -// subtypes - receives the list of annotation subtype which can be tabbed | ||
736 | -// over. Caller must have allocated |subtypes| more than or | ||
737 | -// equal to the count obtained from | ||
738 | -// FPDFAnnot_GetFocusableSubtypesCount() API. | ||
739 | -// count - size of |subtypes|. | ||
740 | -// Returns true on success and set list of annotation subtype to |subtypes|, | ||
741 | -// false otherwise. | ||
742 | -// Note : Annotations of type FPDF_ANNOT_WIDGET are by default focusable. | ||
743 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
744 | -FPDFAnnot_GetFocusableSubtypes(FPDF_FORMHANDLE hHandle, | ||
745 | - FPDF_ANNOTATION_SUBTYPE* subtypes, | ||
746 | - size_t count); | ||
747 | - | ||
748 | -// Experimental API. | ||
749 | -// Gets FPDF_LINK object for |annot|. Intended to use for link annotations. | ||
750 | -// | ||
751 | -// annot - handle to an annotation. | ||
752 | -// | ||
753 | -// Returns FPDF_LINK from the FPDF_ANNOTATION and NULL on failure, | ||
754 | -// if the input annot is NULL or input annot's subtype is not link. | ||
755 | -FPDF_EXPORT FPDF_LINK FPDF_CALLCONV FPDFAnnot_GetLink(FPDF_ANNOTATION annot); | ||
756 | - | ||
757 | -// Experimental API. | ||
758 | -// Gets the count of annotations in the |annot|'s control group. | ||
759 | -// A group of interactive form annotations is collectively called a form | ||
760 | -// control group. Here, |annot|, an interactive form annotation, should be | ||
761 | -// either a radio button or a checkbox. | ||
762 | -// | ||
763 | -// hHandle - handle to the form fill module, returned by | ||
764 | -// FPDFDOC_InitFormFillEnvironment. | ||
765 | -// annot - handle to an annotation. | ||
766 | -// | ||
767 | -// Returns number of controls in its control group or -1 on error. | ||
768 | -FPDF_EXPORT int FPDF_CALLCONV | ||
769 | -FPDFAnnot_GetFormControlCount(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot); | ||
770 | - | ||
771 | -// Experimental API. | ||
772 | -// Gets the index of |annot| in |annot|'s control group. | ||
773 | -// A group of interactive form annotations is collectively called a form | ||
774 | -// control group. Here, |annot|, an interactive form annotation, should be | ||
775 | -// either a radio button or a checkbox. | ||
776 | -// | ||
777 | -// hHandle - handle to the form fill module, returned by | ||
778 | -// FPDFDOC_InitFormFillEnvironment. | ||
779 | -// annot - handle to an annotation. | ||
780 | -// | ||
781 | -// Returns index of a given |annot| in its control group or -1 on error. | ||
782 | -FPDF_EXPORT int FPDF_CALLCONV | ||
783 | -FPDFAnnot_GetFormControlIndex(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot); | ||
784 | - | ||
785 | -// Experimental API. | ||
786 | -// Gets the export value of |annot| which is an interactive form annotation. | ||
787 | -// Intended for use with radio button and checkbox widget annotations. | ||
788 | -// |buffer| is only modified if |buflen| is longer than the length of contents. | ||
789 | -// In case of error, nothing will be added to |buffer| and the return value | ||
790 | -// will be 0. Note that return value of empty string is 2 for "\0\0". | ||
791 | -// | ||
792 | -// hHandle - handle to the form fill module, returned by | ||
793 | -// FPDFDOC_InitFormFillEnvironment(). | ||
794 | -// annot - handle to an interactive form annotation. | ||
795 | -// buffer - buffer for holding the value string, encoded in UTF-16LE. | ||
796 | -// buflen - length of the buffer in bytes. | ||
797 | -// | ||
798 | -// Returns the length of the string value in bytes. | ||
799 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
800 | -FPDFAnnot_GetFormFieldExportValue(FPDF_FORMHANDLE hHandle, | ||
801 | - FPDF_ANNOTATION annot, | ||
802 | - FPDF_WCHAR* buffer, | ||
803 | - unsigned long buflen); | ||
804 | - | ||
805 | -#ifdef __cplusplus | ||
806 | -} // extern "C" | ||
807 | -#endif // __cplusplus | ||
808 | - | ||
809 | -#endif // PUBLIC_FPDF_ANNOT_H_ |
1 | -// Copyright 2017 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -#ifndef PUBLIC_FPDF_ATTACHMENT_H_ | ||
6 | -#define PUBLIC_FPDF_ATTACHMENT_H_ | ||
7 | - | ||
8 | -// NOLINTNEXTLINE(build/include) | ||
9 | -#include "fpdfview.h" | ||
10 | - | ||
11 | -#ifdef __cplusplus | ||
12 | -extern "C" { | ||
13 | -#endif // __cplusplus | ||
14 | - | ||
15 | -// Experimental API. | ||
16 | -// Get the number of embedded files in |document|. | ||
17 | -// | ||
18 | -// document - handle to a document. | ||
19 | -// | ||
20 | -// Returns the number of embedded files in |document|. | ||
21 | -FPDF_EXPORT int FPDF_CALLCONV | ||
22 | -FPDFDoc_GetAttachmentCount(FPDF_DOCUMENT document); | ||
23 | - | ||
24 | -// Experimental API. | ||
25 | -// Add an embedded file with |name| in |document|. If |name| is empty, or if | ||
26 | -// |name| is the name of a existing embedded file in |document|, or if | ||
27 | -// |document|'s embedded file name tree is too deep (i.e. |document| has too | ||
28 | -// many embedded files already), then a new attachment will not be added. | ||
29 | -// | ||
30 | -// document - handle to a document. | ||
31 | -// name - name of the new attachment. | ||
32 | -// | ||
33 | -// Returns a handle to the new attachment object, or NULL on failure. | ||
34 | -FPDF_EXPORT FPDF_ATTACHMENT FPDF_CALLCONV | ||
35 | -FPDFDoc_AddAttachment(FPDF_DOCUMENT document, FPDF_WIDESTRING name); | ||
36 | - | ||
37 | -// Experimental API. | ||
38 | -// Get the embedded attachment at |index| in |document|. Note that the returned | ||
39 | -// attachment handle is only valid while |document| is open. | ||
40 | -// | ||
41 | -// document - handle to a document. | ||
42 | -// index - the index of the requested embedded file. | ||
43 | -// | ||
44 | -// Returns the handle to the attachment object, or NULL on failure. | ||
45 | -FPDF_EXPORT FPDF_ATTACHMENT FPDF_CALLCONV | ||
46 | -FPDFDoc_GetAttachment(FPDF_DOCUMENT document, int index); | ||
47 | - | ||
48 | -// Experimental API. | ||
49 | -// Delete the embedded attachment at |index| in |document|. Note that this does | ||
50 | -// not remove the attachment data from the PDF file; it simply removes the | ||
51 | -// file's entry in the embedded files name tree so that it does not appear in | ||
52 | -// the attachment list. This behavior may change in the future. | ||
53 | -// | ||
54 | -// document - handle to a document. | ||
55 | -// index - the index of the embedded file to be deleted. | ||
56 | -// | ||
57 | -// Returns true if successful. | ||
58 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
59 | -FPDFDoc_DeleteAttachment(FPDF_DOCUMENT document, int index); | ||
60 | - | ||
61 | -// Experimental API. | ||
62 | -// Get the name of the |attachment| file. |buffer| is only modified if |buflen| | ||
63 | -// is longer than the length of the file name. On errors, |buffer| is unmodified | ||
64 | -// and the returned length is 0. | ||
65 | -// | ||
66 | -// attachment - handle to an attachment. | ||
67 | -// buffer - buffer for holding the file name, encoded in UTF-16LE. | ||
68 | -// buflen - length of the buffer in bytes. | ||
69 | -// | ||
70 | -// Returns the length of the file name in bytes. | ||
71 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
72 | -FPDFAttachment_GetName(FPDF_ATTACHMENT attachment, | ||
73 | - FPDF_WCHAR* buffer, | ||
74 | - unsigned long buflen); | ||
75 | - | ||
76 | -// Experimental API. | ||
77 | -// Check if the params dictionary of |attachment| has |key| as a key. | ||
78 | -// | ||
79 | -// attachment - handle to an attachment. | ||
80 | -// key - the key to look for, encoded in UTF-8. | ||
81 | -// | ||
82 | -// Returns true if |key| exists. | ||
83 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
84 | -FPDFAttachment_HasKey(FPDF_ATTACHMENT attachment, FPDF_BYTESTRING key); | ||
85 | - | ||
86 | -// Experimental API. | ||
87 | -// Get the type of the value corresponding to |key| in the params dictionary of | ||
88 | -// the embedded |attachment|. | ||
89 | -// | ||
90 | -// attachment - handle to an attachment. | ||
91 | -// key - the key to look for, encoded in UTF-8. | ||
92 | -// | ||
93 | -// Returns the type of the dictionary value. | ||
94 | -FPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV | ||
95 | -FPDFAttachment_GetValueType(FPDF_ATTACHMENT attachment, FPDF_BYTESTRING key); | ||
96 | - | ||
97 | -// Experimental API. | ||
98 | -// Set the string value corresponding to |key| in the params dictionary of the | ||
99 | -// embedded file |attachment|, overwriting the existing value if any. The value | ||
100 | -// type should be FPDF_OBJECT_STRING after this function call succeeds. | ||
101 | -// | ||
102 | -// attachment - handle to an attachment. | ||
103 | -// key - the key to the dictionary entry, encoded in UTF-8. | ||
104 | -// value - the string value to be set, encoded in UTF-16LE. | ||
105 | -// | ||
106 | -// Returns true if successful. | ||
107 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
108 | -FPDFAttachment_SetStringValue(FPDF_ATTACHMENT attachment, | ||
109 | - FPDF_BYTESTRING key, | ||
110 | - FPDF_WIDESTRING value); | ||
111 | - | ||
112 | -// Experimental API. | ||
113 | -// Get the string value corresponding to |key| in the params dictionary of the | ||
114 | -// embedded file |attachment|. |buffer| is only modified if |buflen| is longer | ||
115 | -// than the length of the string value. Note that if |key| does not exist in the | ||
116 | -// dictionary or if |key|'s corresponding value in the dictionary is not a | ||
117 | -// string (i.e. the value is not of type FPDF_OBJECT_STRING or | ||
118 | -// FPDF_OBJECT_NAME), then an empty string would be copied to |buffer| and the | ||
119 | -// return value would be 2. On other errors, nothing would be added to |buffer| | ||
120 | -// and the return value would be 0. | ||
121 | -// | ||
122 | -// attachment - handle to an attachment. | ||
123 | -// key - the key to the requested string value, encoded in UTF-8. | ||
124 | -// buffer - buffer for holding the string value encoded in UTF-16LE. | ||
125 | -// buflen - length of the buffer in bytes. | ||
126 | -// | ||
127 | -// Returns the length of the dictionary value string in bytes. | ||
128 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
129 | -FPDFAttachment_GetStringValue(FPDF_ATTACHMENT attachment, | ||
130 | - FPDF_BYTESTRING key, | ||
131 | - FPDF_WCHAR* buffer, | ||
132 | - unsigned long buflen); | ||
133 | - | ||
134 | -// Experimental API. | ||
135 | -// Set the file data of |attachment|, overwriting the existing file data if any. | ||
136 | -// The creation date and checksum will be updated, while all other dictionary | ||
137 | -// entries will be deleted. Note that only contents with |len| smaller than | ||
138 | -// INT_MAX is supported. | ||
139 | -// | ||
140 | -// attachment - handle to an attachment. | ||
141 | -// contents - buffer holding the file data to write to |attachment|. | ||
142 | -// len - length of file data in bytes. | ||
143 | -// | ||
144 | -// Returns true if successful. | ||
145 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
146 | -FPDFAttachment_SetFile(FPDF_ATTACHMENT attachment, | ||
147 | - FPDF_DOCUMENT document, | ||
148 | - const void* contents, | ||
149 | - unsigned long len); | ||
150 | - | ||
151 | -// Experimental API. | ||
152 | -// Get the file data of |attachment|. | ||
153 | -// When the attachment file data is readable, true is returned, and |out_buflen| | ||
154 | -// is updated to indicate the file data size. |buffer| is only modified if | ||
155 | -// |buflen| is non-null and long enough to contain the entire file data. Callers | ||
156 | -// must check both the return value and the input |buflen| is no less than the | ||
157 | -// returned |out_buflen| before using the data. | ||
158 | -// | ||
159 | -// Otherwise, when the attachment file data is unreadable or when |out_buflen| | ||
160 | -// is null, false is returned and |buffer| and |out_buflen| remain unmodified. | ||
161 | -// | ||
162 | -// attachment - handle to an attachment. | ||
163 | -// buffer - buffer for holding the file data from |attachment|. | ||
164 | -// buflen - length of the buffer in bytes. | ||
165 | -// out_buflen - pointer to the variable that will receive the minimum buffer | ||
166 | -// size to contain the file data of |attachment|. | ||
167 | -// | ||
168 | -// Returns true on success, false otherwise. | ||
169 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
170 | -FPDFAttachment_GetFile(FPDF_ATTACHMENT attachment, | ||
171 | - void* buffer, | ||
172 | - unsigned long buflen, | ||
173 | - unsigned long* out_buflen); | ||
174 | - | ||
175 | -#ifdef __cplusplus | ||
176 | -} // extern "C" | ||
177 | -#endif // __cplusplus | ||
178 | - | ||
179 | -#endif // PUBLIC_FPDF_ATTACHMENT_H_ |
1 | -// Copyright 2017 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -#ifndef PUBLIC_FPDF_CATALOG_H_ | ||
6 | -#define PUBLIC_FPDF_CATALOG_H_ | ||
7 | - | ||
8 | -// NOLINTNEXTLINE(build/include) | ||
9 | -#include "fpdfview.h" | ||
10 | - | ||
11 | -#ifdef __cplusplus | ||
12 | -extern "C" { | ||
13 | -#endif // __cplusplus | ||
14 | - | ||
15 | -/** | ||
16 | - * Experimental API. | ||
17 | - * | ||
18 | - * Determine if |document| represents a tagged PDF. | ||
19 | - * | ||
20 | - * For the definition of tagged PDF, See (see 10.7 "Tagged PDF" in PDF | ||
21 | - * Reference 1.7). | ||
22 | - * | ||
23 | - * document - handle to a document. | ||
24 | - * | ||
25 | - * Returns |true| iff |document| is a tagged PDF. | ||
26 | - */ | ||
27 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
28 | -FPDFCatalog_IsTagged(FPDF_DOCUMENT document); | ||
29 | - | ||
30 | -#ifdef __cplusplus | ||
31 | -} // extern "C" | ||
32 | -#endif // __cplusplus | ||
33 | - | ||
34 | -#endif // PUBLIC_FPDF_CATALOG_H_ |
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | ||
6 | - | ||
7 | -#ifndef PUBLIC_FPDF_DATAAVAIL_H_ | ||
8 | -#define PUBLIC_FPDF_DATAAVAIL_H_ | ||
9 | - | ||
10 | -#include <stddef.h> | ||
11 | - | ||
12 | -// NOLINTNEXTLINE(build/include) | ||
13 | -#include "fpdfview.h" | ||
14 | - | ||
15 | -#define PDF_LINEARIZATION_UNKNOWN -1 | ||
16 | -#define PDF_NOT_LINEARIZED 0 | ||
17 | -#define PDF_LINEARIZED 1 | ||
18 | - | ||
19 | -#define PDF_DATA_ERROR -1 | ||
20 | -#define PDF_DATA_NOTAVAIL 0 | ||
21 | -#define PDF_DATA_AVAIL 1 | ||
22 | - | ||
23 | -#define PDF_FORM_ERROR -1 | ||
24 | -#define PDF_FORM_NOTAVAIL 0 | ||
25 | -#define PDF_FORM_AVAIL 1 | ||
26 | -#define PDF_FORM_NOTEXIST 2 | ||
27 | - | ||
28 | -#ifdef __cplusplus | ||
29 | -extern "C" { | ||
30 | -#endif // __cplusplus | ||
31 | - | ||
32 | -// Interface for checking whether sections of the file are available. | ||
33 | -typedef struct _FX_FILEAVAIL { | ||
34 | - // Version number of the interface. Must be 1. | ||
35 | - int version; | ||
36 | - | ||
37 | - // Reports if the specified data section is currently available. A section is | ||
38 | - // available if all bytes in the section are available. | ||
39 | - // | ||
40 | - // Interface Version: 1 | ||
41 | - // Implementation Required: Yes | ||
42 | - // | ||
43 | - // pThis - pointer to the interface structure. | ||
44 | - // offset - the offset of the data section in the file. | ||
45 | - // size - the size of the data section. | ||
46 | - // | ||
47 | - // Returns true if the specified data section at |offset| of |size| | ||
48 | - // is available. | ||
49 | - FPDF_BOOL(*IsDataAvail) | ||
50 | - (struct _FX_FILEAVAIL* pThis, size_t offset, size_t size); | ||
51 | -} FX_FILEAVAIL; | ||
52 | -typedef void* FPDF_AVAIL; | ||
53 | - | ||
54 | -// Create a document availability provider. | ||
55 | -// | ||
56 | -// file_avail - pointer to file availability interface. | ||
57 | -// file - pointer to a file access interface. | ||
58 | -// | ||
59 | -// Returns a handle to the document availability provider, or NULL on error. | ||
60 | -// | ||
61 | -// FPDFAvail_Destroy() must be called when done with the availability provider. | ||
62 | -FPDF_EXPORT FPDF_AVAIL FPDF_CALLCONV FPDFAvail_Create(FX_FILEAVAIL* file_avail, | ||
63 | - FPDF_FILEACCESS* file); | ||
64 | - | ||
65 | -// Destroy the |avail| document availability provider. | ||
66 | -// | ||
67 | -// avail - handle to document availability provider to be destroyed. | ||
68 | -FPDF_EXPORT void FPDF_CALLCONV FPDFAvail_Destroy(FPDF_AVAIL avail); | ||
69 | - | ||
70 | -// Download hints interface. Used to receive hints for further downloading. | ||
71 | -typedef struct _FX_DOWNLOADHINTS { | ||
72 | - // Version number of the interface. Must be 1. | ||
73 | - int version; | ||
74 | - | ||
75 | - // Add a section to be downloaded. | ||
76 | - // | ||
77 | - // Interface Version: 1 | ||
78 | - // Implementation Required: Yes | ||
79 | - // | ||
80 | - // pThis - pointer to the interface structure. | ||
81 | - // offset - the offset of the hint reported to be downloaded. | ||
82 | - // size - the size of the hint reported to be downloaded. | ||
83 | - // | ||
84 | - // The |offset| and |size| of the section may not be unique. Part of the | ||
85 | - // section might be already available. The download manager must deal with | ||
86 | - // overlapping sections. | ||
87 | - void (*AddSegment)(struct _FX_DOWNLOADHINTS* pThis, | ||
88 | - size_t offset, | ||
89 | - size_t size); | ||
90 | -} FX_DOWNLOADHINTS; | ||
91 | - | ||
92 | -// Checks if the document is ready for loading, if not, gets download hints. | ||
93 | -// | ||
94 | -// avail - handle to document availability provider. | ||
95 | -// hints - pointer to a download hints interface. | ||
96 | -// | ||
97 | -// Returns one of: | ||
98 | -// PDF_DATA_ERROR: A common error is returned. Data availability unknown. | ||
99 | -// PDF_DATA_NOTAVAIL: Data not yet available. | ||
100 | -// PDF_DATA_AVAIL: Data available. | ||
101 | -// | ||
102 | -// Applications should call this function whenever new data arrives, and process | ||
103 | -// all the generated download hints, if any, until the function returns | ||
104 | -// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. | ||
105 | -// if hints is nullptr, the function just check current document availability. | ||
106 | -// | ||
107 | -// Once all data is available, call FPDFAvail_GetDocument() to get a document | ||
108 | -// handle. | ||
109 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsDocAvail(FPDF_AVAIL avail, | ||
110 | - FX_DOWNLOADHINTS* hints); | ||
111 | - | ||
112 | -// Get document from the availability provider. | ||
113 | -// | ||
114 | -// avail - handle to document availability provider. | ||
115 | -// password - password for decrypting the PDF file. Optional. | ||
116 | -// | ||
117 | -// Returns a handle to the document. | ||
118 | -// | ||
119 | -// When FPDFAvail_IsDocAvail() returns TRUE, call FPDFAvail_GetDocument() to | ||
120 | -// retrieve the document handle. | ||
121 | -// See the comments for FPDF_LoadDocument() regarding the encoding for | ||
122 | -// |password|. | ||
123 | -FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV | ||
124 | -FPDFAvail_GetDocument(FPDF_AVAIL avail, FPDF_BYTESTRING password); | ||
125 | - | ||
126 | -// Get the page number for the first available page in a linearized PDF. | ||
127 | -// | ||
128 | -// doc - document handle. | ||
129 | -// | ||
130 | -// Returns the zero-based index for the first available page. | ||
131 | -// | ||
132 | -// For most linearized PDFs, the first available page will be the first page, | ||
133 | -// however, some PDFs might make another page the first available page. | ||
134 | -// For non-linearized PDFs, this function will always return zero. | ||
135 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc); | ||
136 | - | ||
137 | -// Check if |page_index| is ready for loading, if not, get the | ||
138 | -// |FX_DOWNLOADHINTS|. | ||
139 | -// | ||
140 | -// avail - handle to document availability provider. | ||
141 | -// page_index - index number of the page. Zero for the first page. | ||
142 | -// hints - pointer to a download hints interface. Populated if | ||
143 | -// |page_index| is not available. | ||
144 | -// | ||
145 | -// Returns one of: | ||
146 | -// PDF_DATA_ERROR: A common error is returned. Data availability unknown. | ||
147 | -// PDF_DATA_NOTAVAIL: Data not yet available. | ||
148 | -// PDF_DATA_AVAIL: Data available. | ||
149 | -// | ||
150 | -// This function can be called only after FPDFAvail_GetDocument() is called. | ||
151 | -// Applications should call this function whenever new data arrives and process | ||
152 | -// all the generated download |hints|, if any, until this function returns | ||
153 | -// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page | ||
154 | -// loading. | ||
155 | -// if hints is nullptr, the function just check current availability of | ||
156 | -// specified page. | ||
157 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsPageAvail(FPDF_AVAIL avail, | ||
158 | - int page_index, | ||
159 | - FX_DOWNLOADHINTS* hints); | ||
160 | - | ||
161 | -// Check if form data is ready for initialization, if not, get the | ||
162 | -// |FX_DOWNLOADHINTS|. | ||
163 | -// | ||
164 | -// avail - handle to document availability provider. | ||
165 | -// hints - pointer to a download hints interface. Populated if form is not | ||
166 | -// ready for initialization. | ||
167 | -// | ||
168 | -// Returns one of: | ||
169 | -// PDF_FORM_ERROR: A common eror, in general incorrect parameters. | ||
170 | -// PDF_FORM_NOTAVAIL: Data not available. | ||
171 | -// PDF_FORM_AVAIL: Data available. | ||
172 | -// PDF_FORM_NOTEXIST: No form data. | ||
173 | -// | ||
174 | -// This function can be called only after FPDFAvail_GetDocument() is called. | ||
175 | -// The application should call this function whenever new data arrives and | ||
176 | -// process all the generated download |hints|, if any, until the function | ||
177 | -// |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|. | ||
178 | -// if hints is nullptr, the function just check current form availability. | ||
179 | -// | ||
180 | -// Applications can then perform page loading. It is recommend to call | ||
181 | -// FPDFDOC_InitFormFillEnvironment() when |PDF_FORM_AVAIL| is returned. | ||
182 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsFormAvail(FPDF_AVAIL avail, | ||
183 | - FX_DOWNLOADHINTS* hints); | ||
184 | - | ||
185 | -// Check whether a document is a linearized PDF. | ||
186 | -// | ||
187 | -// avail - handle to document availability provider. | ||
188 | -// | ||
189 | -// Returns one of: | ||
190 | -// PDF_LINEARIZED | ||
191 | -// PDF_NOT_LINEARIZED | ||
192 | -// PDF_LINEARIZATION_UNKNOWN | ||
193 | -// | ||
194 | -// FPDFAvail_IsLinearized() will return |PDF_LINEARIZED| or |PDF_NOT_LINEARIZED| | ||
195 | -// when we have 1k of data. If the files size less than 1k, it returns | ||
196 | -// |PDF_LINEARIZATION_UNKNOWN| as there is insufficient information to determine | ||
197 | -// if the PDF is linearlized. | ||
198 | -FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsLinearized(FPDF_AVAIL avail); | ||
199 | - | ||
200 | -#ifdef __cplusplus | ||
201 | -} // extern "C" | ||
202 | -#endif // __cplusplus | ||
203 | - | ||
204 | -#endif // PUBLIC_FPDF_DATAAVAIL_H_ |
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | ||
6 | - | ||
7 | -#ifndef PUBLIC_FPDF_DOC_H_ | ||
8 | -#define PUBLIC_FPDF_DOC_H_ | ||
9 | - | ||
10 | -// NOLINTNEXTLINE(build/include) | ||
11 | -#include "fpdfview.h" | ||
12 | - | ||
13 | -#ifdef __cplusplus | ||
14 | -extern "C" { | ||
15 | -#endif // __cplusplus | ||
16 | - | ||
17 | -// Unsupported action type. | ||
18 | -#define PDFACTION_UNSUPPORTED 0 | ||
19 | -// Go to a destination within current document. | ||
20 | -#define PDFACTION_GOTO 1 | ||
21 | -// Go to a destination within another document. | ||
22 | -#define PDFACTION_REMOTEGOTO 2 | ||
23 | -// URI, including web pages and other Internet resources. | ||
24 | -#define PDFACTION_URI 3 | ||
25 | -// Launch an application or open a file. | ||
26 | -#define PDFACTION_LAUNCH 4 | ||
27 | -// Go to a destination in an embedded file. | ||
28 | -#define PDFACTION_EMBEDDEDGOTO 5 | ||
29 | - | ||
30 | -// View destination fit types. See pdfmark reference v9, page 48. | ||
31 | -#define PDFDEST_VIEW_UNKNOWN_MODE 0 | ||
32 | -#define PDFDEST_VIEW_XYZ 1 | ||
33 | -#define PDFDEST_VIEW_FIT 2 | ||
34 | -#define PDFDEST_VIEW_FITH 3 | ||
35 | -#define PDFDEST_VIEW_FITV 4 | ||
36 | -#define PDFDEST_VIEW_FITR 5 | ||
37 | -#define PDFDEST_VIEW_FITB 6 | ||
38 | -#define PDFDEST_VIEW_FITBH 7 | ||
39 | -#define PDFDEST_VIEW_FITBV 8 | ||
40 | - | ||
41 | -// The file identifier entry type. See section 14.4 "File Identifiers" of the | ||
42 | -// ISO 32000-1 standard. | ||
43 | -typedef enum { | ||
44 | - FILEIDTYPE_PERMANENT = 0, | ||
45 | - FILEIDTYPE_CHANGING = 1 | ||
46 | -} FPDF_FILEIDTYPE; | ||
47 | - | ||
48 | -typedef struct _FS_QUADPOINTSF { | ||
49 | - FS_FLOAT x1; | ||
50 | - FS_FLOAT y1; | ||
51 | - FS_FLOAT x2; | ||
52 | - FS_FLOAT y2; | ||
53 | - FS_FLOAT x3; | ||
54 | - FS_FLOAT y3; | ||
55 | - FS_FLOAT x4; | ||
56 | - FS_FLOAT y4; | ||
57 | -} FS_QUADPOINTSF; | ||
58 | - | ||
59 | -// Get the first child of |bookmark|, or the first top-level bookmark item. | ||
60 | -// | ||
61 | -// document - handle to the document. | ||
62 | -// bookmark - handle to the current bookmark. Pass NULL for the first top | ||
63 | -// level item. | ||
64 | -// | ||
65 | -// Returns a handle to the first child of |bookmark| or the first top-level | ||
66 | -// bookmark item. NULL if no child or top-level bookmark found. | ||
67 | -FPDF_EXPORT FPDF_BOOKMARK FPDF_CALLCONV | ||
68 | -FPDFBookmark_GetFirstChild(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark); | ||
69 | - | ||
70 | -// Get the next sibling of |bookmark|. | ||
71 | -// | ||
72 | -// document - handle to the document. | ||
73 | -// bookmark - handle to the current bookmark. | ||
74 | -// | ||
75 | -// Returns a handle to the next sibling of |bookmark|, or NULL if this is the | ||
76 | -// last bookmark at this level. | ||
77 | -FPDF_EXPORT FPDF_BOOKMARK FPDF_CALLCONV | ||
78 | -FPDFBookmark_GetNextSibling(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark); | ||
79 | - | ||
80 | -// Get the title of |bookmark|. | ||
81 | -// | ||
82 | -// bookmark - handle to the bookmark. | ||
83 | -// buffer - buffer for the title. May be NULL. | ||
84 | -// buflen - the length of the buffer in bytes. May be 0. | ||
85 | -// | ||
86 | -// Returns the number of bytes in the title, including the terminating NUL | ||
87 | -// character. The number of bytes is returned regardless of the |buffer| and | ||
88 | -// |buflen| parameters. | ||
89 | -// | ||
90 | -// Regardless of the platform, the |buffer| is always in UTF-16LE encoding. The | ||
91 | -// string is terminated by a UTF16 NUL character. If |buflen| is less than the | ||
92 | -// required length, or |buffer| is NULL, |buffer| will not be modified. | ||
93 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
94 | -FPDFBookmark_GetTitle(FPDF_BOOKMARK bookmark, | ||
95 | - void* buffer, | ||
96 | - unsigned long buflen); | ||
97 | - | ||
98 | -// Find the bookmark with |title| in |document|. | ||
99 | -// | ||
100 | -// document - handle to the document. | ||
101 | -// title - the UTF-16LE encoded Unicode title for which to search. | ||
102 | -// | ||
103 | -// Returns the handle to the bookmark, or NULL if |title| can't be found. | ||
104 | -// | ||
105 | -// FPDFBookmark_Find() will always return the first bookmark found even if | ||
106 | -// multiple bookmarks have the same |title|. | ||
107 | -FPDF_EXPORT FPDF_BOOKMARK FPDF_CALLCONV | ||
108 | -FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_WIDESTRING title); | ||
109 | - | ||
110 | -// Get the destination associated with |bookmark|. | ||
111 | -// | ||
112 | -// document - handle to the document. | ||
113 | -// bookmark - handle to the bookmark. | ||
114 | -// | ||
115 | -// Returns the handle to the destination data, NULL if no destination is | ||
116 | -// associated with |bookmark|. | ||
117 | -FPDF_EXPORT FPDF_DEST FPDF_CALLCONV | ||
118 | -FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark); | ||
119 | - | ||
120 | -// Get the action associated with |bookmark|. | ||
121 | -// | ||
122 | -// bookmark - handle to the bookmark. | ||
123 | -// | ||
124 | -// Returns the handle to the action data, or NULL if no action is associated | ||
125 | -// with |bookmark|. When NULL is returned, FPDFBookmark_GetDest() should be | ||
126 | -// called to get the |bookmark| destination data. | ||
127 | -FPDF_EXPORT FPDF_ACTION FPDF_CALLCONV | ||
128 | -FPDFBookmark_GetAction(FPDF_BOOKMARK bookmark); | ||
129 | - | ||
130 | -// Get the type of |action|. | ||
131 | -// | ||
132 | -// action - handle to the action. | ||
133 | -// | ||
134 | -// Returns one of: | ||
135 | -// PDFACTION_UNSUPPORTED | ||
136 | -// PDFACTION_GOTO | ||
137 | -// PDFACTION_REMOTEGOTO | ||
138 | -// PDFACTION_URI | ||
139 | -// PDFACTION_LAUNCH | ||
140 | -FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAction_GetType(FPDF_ACTION action); | ||
141 | - | ||
142 | -// Get the destination of |action|. | ||
143 | -// | ||
144 | -// document - handle to the document. | ||
145 | -// action - handle to the action. |action| must be a |PDFACTION_GOTO| or | ||
146 | -// |PDFACTION_REMOTEGOTO|. | ||
147 | -// | ||
148 | -// Returns a handle to the destination data, or NULL on error, typically | ||
149 | -// because the arguments were bad or the action was of the wrong type. | ||
150 | -// | ||
151 | -// In the case of |PDFACTION_REMOTEGOTO|, you must first call | ||
152 | -// FPDFAction_GetFilePath(), then load the document at that path, then pass | ||
153 | -// the document handle from that document as |document| to FPDFAction_GetDest(). | ||
154 | -FPDF_EXPORT FPDF_DEST FPDF_CALLCONV FPDFAction_GetDest(FPDF_DOCUMENT document, | ||
155 | - FPDF_ACTION action); | ||
156 | - | ||
157 | -// Get the file path of |action|. | ||
158 | -// | ||
159 | -// action - handle to the action. |action| must be a |PDFACTION_LAUNCH| or | ||
160 | -// |PDFACTION_REMOTEGOTO|. | ||
161 | -// buffer - a buffer for output the path string. May be NULL. | ||
162 | -// buflen - the length of the buffer, in bytes. May be 0. | ||
163 | -// | ||
164 | -// Returns the number of bytes in the file path, including the trailing NUL | ||
165 | -// character, or 0 on error, typically because the arguments were bad or the | ||
166 | -// action was of the wrong type. | ||
167 | -// | ||
168 | -// Regardless of the platform, the |buffer| is always in UTF-8 encoding. | ||
169 | -// If |buflen| is less than the returned length, or |buffer| is NULL, |buffer| | ||
170 | -// will not be modified. | ||
171 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
172 | -FPDFAction_GetFilePath(FPDF_ACTION action, void* buffer, unsigned long buflen); | ||
173 | - | ||
174 | -// Get the URI path of |action|. | ||
175 | -// | ||
176 | -// document - handle to the document. | ||
177 | -// action - handle to the action. Must be a |PDFACTION_URI|. | ||
178 | -// buffer - a buffer for the path string. May be NULL. | ||
179 | -// buflen - the length of the buffer, in bytes. May be 0. | ||
180 | -// | ||
181 | -// Returns the number of bytes in the URI path, including the trailing NUL | ||
182 | -// character, or 0 on error, typically because the arguments were bad or the | ||
183 | -// action was of the wrong type. | ||
184 | -// | ||
185 | -// The |buffer| is always encoded in 7-bit ASCII. If |buflen| is less than the | ||
186 | -// returned length, or |buffer| is NULL, |buffer| will not be modified. | ||
187 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
188 | -FPDFAction_GetURIPath(FPDF_DOCUMENT document, | ||
189 | - FPDF_ACTION action, | ||
190 | - void* buffer, | ||
191 | - unsigned long buflen); | ||
192 | - | ||
193 | -// Get the page index of |dest|. | ||
194 | -// | ||
195 | -// document - handle to the document. | ||
196 | -// dest - handle to the destination. | ||
197 | -// | ||
198 | -// Returns the 0-based page index containing |dest|. Returns -1 on error. | ||
199 | -FPDF_EXPORT int FPDF_CALLCONV FPDFDest_GetDestPageIndex(FPDF_DOCUMENT document, | ||
200 | - FPDF_DEST dest); | ||
201 | - | ||
202 | -// Experimental API. | ||
203 | -// Get the view (fit type) specified by |dest|. | ||
204 | -// | ||
205 | -// dest - handle to the destination. | ||
206 | -// pNumParams - receives the number of view parameters, which is at most 4. | ||
207 | -// pParams - buffer to write the view parameters. Must be at least 4 | ||
208 | -// FS_FLOATs long. | ||
209 | -// Returns one of the PDFDEST_VIEW_* constants, PDFDEST_VIEW_UNKNOWN_MODE if | ||
210 | -// |dest| does not specify a view. | ||
211 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
212 | -FPDFDest_GetView(FPDF_DEST dest, unsigned long* pNumParams, FS_FLOAT* pParams); | ||
213 | - | ||
214 | -// Get the (x, y, zoom) location of |dest| in the destination page, if the | ||
215 | -// destination is in [page /XYZ x y zoom] syntax. | ||
216 | -// | ||
217 | -// dest - handle to the destination. | ||
218 | -// hasXVal - out parameter; true if the x value is not null | ||
219 | -// hasYVal - out parameter; true if the y value is not null | ||
220 | -// hasZoomVal - out parameter; true if the zoom value is not null | ||
221 | -// x - out parameter; the x coordinate, in page coordinates. | ||
222 | -// y - out parameter; the y coordinate, in page coordinates. | ||
223 | -// zoom - out parameter; the zoom value. | ||
224 | -// Returns TRUE on successfully reading the /XYZ value. | ||
225 | -// | ||
226 | -// Note the [x, y, zoom] values are only set if the corresponding hasXVal, | ||
227 | -// hasYVal or hasZoomVal flags are true. | ||
228 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
229 | -FPDFDest_GetLocationInPage(FPDF_DEST dest, | ||
230 | - FPDF_BOOL* hasXVal, | ||
231 | - FPDF_BOOL* hasYVal, | ||
232 | - FPDF_BOOL* hasZoomVal, | ||
233 | - FS_FLOAT* x, | ||
234 | - FS_FLOAT* y, | ||
235 | - FS_FLOAT* zoom); | ||
236 | - | ||
237 | -// Find a link at point (|x|,|y|) on |page|. | ||
238 | -// | ||
239 | -// page - handle to the document page. | ||
240 | -// x - the x coordinate, in the page coordinate system. | ||
241 | -// y - the y coordinate, in the page coordinate system. | ||
242 | -// | ||
243 | -// Returns a handle to the link, or NULL if no link found at the given point. | ||
244 | -// | ||
245 | -// You can convert coordinates from screen coordinates to page coordinates using | ||
246 | -// FPDF_DeviceToPage(). | ||
247 | -FPDF_EXPORT FPDF_LINK FPDF_CALLCONV FPDFLink_GetLinkAtPoint(FPDF_PAGE page, | ||
248 | - double x, | ||
249 | - double y); | ||
250 | - | ||
251 | -// Find the Z-order of link at point (|x|,|y|) on |page|. | ||
252 | -// | ||
253 | -// page - handle to the document page. | ||
254 | -// x - the x coordinate, in the page coordinate system. | ||
255 | -// y - the y coordinate, in the page coordinate system. | ||
256 | -// | ||
257 | -// Returns the Z-order of the link, or -1 if no link found at the given point. | ||
258 | -// Larger Z-order numbers are closer to the front. | ||
259 | -// | ||
260 | -// You can convert coordinates from screen coordinates to page coordinates using | ||
261 | -// FPDF_DeviceToPage(). | ||
262 | -FPDF_EXPORT int FPDF_CALLCONV FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, | ||
263 | - double x, | ||
264 | - double y); | ||
265 | - | ||
266 | -// Get destination info for |link|. | ||
267 | -// | ||
268 | -// document - handle to the document. | ||
269 | -// link - handle to the link. | ||
270 | -// | ||
271 | -// Returns a handle to the destination, or NULL if there is no destination | ||
272 | -// associated with the link. In this case, you should call FPDFLink_GetAction() | ||
273 | -// to retrieve the action associated with |link|. | ||
274 | -FPDF_EXPORT FPDF_DEST FPDF_CALLCONV FPDFLink_GetDest(FPDF_DOCUMENT document, | ||
275 | - FPDF_LINK link); | ||
276 | - | ||
277 | -// Get action info for |link|. | ||
278 | -// | ||
279 | -// link - handle to the link. | ||
280 | -// | ||
281 | -// Returns a handle to the action associated to |link|, or NULL if no action. | ||
282 | -FPDF_EXPORT FPDF_ACTION FPDF_CALLCONV FPDFLink_GetAction(FPDF_LINK link); | ||
283 | - | ||
284 | -// Enumerates all the link annotations in |page|. | ||
285 | -// | ||
286 | -// page - handle to the page. | ||
287 | -// start_pos - the start position, should initially be 0 and is updated with | ||
288 | -// the next start position on return. | ||
289 | -// link_annot - the link handle for |startPos|. | ||
290 | -// | ||
291 | -// Returns TRUE on success. | ||
292 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFLink_Enumerate(FPDF_PAGE page, | ||
293 | - int* start_pos, | ||
294 | - FPDF_LINK* link_annot); | ||
295 | - | ||
296 | -// Experimental API. | ||
297 | -// Gets FPDF_ANNOTATION object for |link_annot|. | ||
298 | -// | ||
299 | -// page - handle to the page in which FPDF_LINK object is present. | ||
300 | -// link_annot - handle to link annotation. | ||
301 | -// | ||
302 | -// Returns FPDF_ANNOTATION from the FPDF_LINK and NULL on failure, | ||
303 | -// if the input link annot or page is NULL. | ||
304 | -FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV | ||
305 | -FPDFLink_GetAnnot(FPDF_PAGE page, FPDF_LINK link_annot); | ||
306 | - | ||
307 | -// Get the rectangle for |link_annot|. | ||
308 | -// | ||
309 | -// link_annot - handle to the link annotation. | ||
310 | -// rect - the annotation rectangle. | ||
311 | -// | ||
312 | -// Returns true on success. | ||
313 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFLink_GetAnnotRect(FPDF_LINK link_annot, | ||
314 | - FS_RECTF* rect); | ||
315 | - | ||
316 | -// Get the count of quadrilateral points to the |link_annot|. | ||
317 | -// | ||
318 | -// link_annot - handle to the link annotation. | ||
319 | -// | ||
320 | -// Returns the count of quadrilateral points. | ||
321 | -FPDF_EXPORT int FPDF_CALLCONV FPDFLink_CountQuadPoints(FPDF_LINK link_annot); | ||
322 | - | ||
323 | -// Get the quadrilateral points for the specified |quad_index| in |link_annot|. | ||
324 | -// | ||
325 | -// link_annot - handle to the link annotation. | ||
326 | -// quad_index - the specified quad point index. | ||
327 | -// quad_points - receives the quadrilateral points. | ||
328 | -// | ||
329 | -// Returns true on success. | ||
330 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
331 | -FPDFLink_GetQuadPoints(FPDF_LINK link_annot, | ||
332 | - int quad_index, | ||
333 | - FS_QUADPOINTSF* quad_points); | ||
334 | - | ||
335 | -// Experimental API | ||
336 | -// Gets an additional-action from |page|. | ||
337 | -// | ||
338 | -// page - handle to the page, as returned by FPDF_LoadPage(). | ||
339 | -// aa_type - the type of the page object's addtional-action, defined | ||
340 | -// in public/fpdf_formfill.h | ||
341 | -// | ||
342 | -// Returns the handle to the action data, or NULL if there is no | ||
343 | -// additional-action of type |aa_type|. | ||
344 | -FPDF_EXPORT FPDF_ACTION FPDF_CALLCONV FPDF_GetPageAAction(FPDF_PAGE page, | ||
345 | - int aa_type); | ||
346 | - | ||
347 | -// Experimental API. | ||
348 | -// Get the file identifer defined in the trailer of |document|. | ||
349 | -// | ||
350 | -// document - handle to the document. | ||
351 | -// id_type - the file identifier type to retrieve. | ||
352 | -// buffer - a buffer for the file identifier. May be NULL. | ||
353 | -// buflen - the length of the buffer, in bytes. May be 0. | ||
354 | -// | ||
355 | -// Returns the number of bytes in the file identifier, including the NUL | ||
356 | -// terminator. | ||
357 | -// | ||
358 | -// The |buffer| is always a byte string. The |buffer| is followed by a NUL | ||
359 | -// terminator. If |buflen| is less than the returned length, or |buffer| is | ||
360 | -// NULL, |buffer| will not be modified. | ||
361 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
362 | -FPDF_GetFileIdentifier(FPDF_DOCUMENT document, | ||
363 | - FPDF_FILEIDTYPE id_type, | ||
364 | - void* buffer, | ||
365 | - unsigned long buflen); | ||
366 | - | ||
367 | -// Get meta-data |tag| content from |document|. | ||
368 | -// | ||
369 | -// document - handle to the document. | ||
370 | -// tag - the tag to retrieve. The tag can be one of: | ||
371 | -// Title, Author, Subject, Keywords, Creator, Producer, | ||
372 | -// CreationDate, or ModDate. | ||
373 | -// For detailed explanations of these tags and their respective | ||
374 | -// values, please refer to PDF Reference 1.6, section 10.2.1, | ||
375 | -// 'Document Information Dictionary'. | ||
376 | -// buffer - a buffer for the tag. May be NULL. | ||
377 | -// buflen - the length of the buffer, in bytes. May be 0. | ||
378 | -// | ||
379 | -// Returns the number of bytes in the tag, including trailing zeros. | ||
380 | -// | ||
381 | -// The |buffer| is always encoded in UTF-16LE. The |buffer| is followed by two | ||
382 | -// bytes of zeros indicating the end of the string. If |buflen| is less than | ||
383 | -// the returned length, or |buffer| is NULL, |buffer| will not be modified. | ||
384 | -// | ||
385 | -// For linearized files, FPDFAvail_IsFormAvail must be called before this, and | ||
386 | -// it must have returned PDF_FORM_AVAIL or PDF_FORM_NOTEXIST. Before that, there | ||
387 | -// is no guarantee the metadata has been loaded. | ||
388 | -FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetMetaText(FPDF_DOCUMENT document, | ||
389 | - FPDF_BYTESTRING tag, | ||
390 | - void* buffer, | ||
391 | - unsigned long buflen); | ||
392 | - | ||
393 | -// Get the page label for |page_index| from |document|. | ||
394 | -// | ||
395 | -// document - handle to the document. | ||
396 | -// page_index - the 0-based index of the page. | ||
397 | -// buffer - a buffer for the page label. May be NULL. | ||
398 | -// buflen - the length of the buffer, in bytes. May be 0. | ||
399 | -// | ||
400 | -// Returns the number of bytes in the page label, including trailing zeros. | ||
401 | -// | ||
402 | -// The |buffer| is always encoded in UTF-16LE. The |buffer| is followed by two | ||
403 | -// bytes of zeros indicating the end of the string. If |buflen| is less than | ||
404 | -// the returned length, or |buffer| is NULL, |buffer| will not be modified. | ||
405 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
406 | -FPDF_GetPageLabel(FPDF_DOCUMENT document, | ||
407 | - int page_index, | ||
408 | - void* buffer, | ||
409 | - unsigned long buflen); | ||
410 | - | ||
411 | -#ifdef __cplusplus | ||
412 | -} // extern "C" | ||
413 | -#endif // __cplusplus | ||
414 | - | ||
415 | -#endif // PUBLIC_FPDF_DOC_H_ |
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | ||
6 | - | ||
7 | -#ifndef PUBLIC_FPDF_EDIT_H_ | ||
8 | -#define PUBLIC_FPDF_EDIT_H_ | ||
9 | - | ||
10 | -#include <stdint.h> | ||
11 | - | ||
12 | -// NOLINTNEXTLINE(build/include) | ||
13 | -#include "fpdfview.h" | ||
14 | - | ||
15 | -#define FPDF_ARGB(a, r, g, b) \ | ||
16 | - ((uint32_t)(((uint32_t)(b)&0xff) | (((uint32_t)(g)&0xff) << 8) | \ | ||
17 | - (((uint32_t)(r)&0xff) << 16) | (((uint32_t)(a)&0xff) << 24))) | ||
18 | -#define FPDF_GetBValue(argb) ((uint8_t)(argb)) | ||
19 | -#define FPDF_GetGValue(argb) ((uint8_t)(((uint16_t)(argb)) >> 8)) | ||
20 | -#define FPDF_GetRValue(argb) ((uint8_t)((argb) >> 16)) | ||
21 | -#define FPDF_GetAValue(argb) ((uint8_t)((argb) >> 24)) | ||
22 | - | ||
23 | -// Refer to PDF Reference version 1.7 table 4.12 for all color space families. | ||
24 | -#define FPDF_COLORSPACE_UNKNOWN 0 | ||
25 | -#define FPDF_COLORSPACE_DEVICEGRAY 1 | ||
26 | -#define FPDF_COLORSPACE_DEVICERGB 2 | ||
27 | -#define FPDF_COLORSPACE_DEVICECMYK 3 | ||
28 | -#define FPDF_COLORSPACE_CALGRAY 4 | ||
29 | -#define FPDF_COLORSPACE_CALRGB 5 | ||
30 | -#define FPDF_COLORSPACE_LAB 6 | ||
31 | -#define FPDF_COLORSPACE_ICCBASED 7 | ||
32 | -#define FPDF_COLORSPACE_SEPARATION 8 | ||
33 | -#define FPDF_COLORSPACE_DEVICEN 9 | ||
34 | -#define FPDF_COLORSPACE_INDEXED 10 | ||
35 | -#define FPDF_COLORSPACE_PATTERN 11 | ||
36 | - | ||
37 | -// The page object constants. | ||
38 | -#define FPDF_PAGEOBJ_UNKNOWN 0 | ||
39 | -#define FPDF_PAGEOBJ_TEXT 1 | ||
40 | -#define FPDF_PAGEOBJ_PATH 2 | ||
41 | -#define FPDF_PAGEOBJ_IMAGE 3 | ||
42 | -#define FPDF_PAGEOBJ_SHADING 4 | ||
43 | -#define FPDF_PAGEOBJ_FORM 5 | ||
44 | - | ||
45 | -// The path segment constants. | ||
46 | -#define FPDF_SEGMENT_UNKNOWN -1 | ||
47 | -#define FPDF_SEGMENT_LINETO 0 | ||
48 | -#define FPDF_SEGMENT_BEZIERTO 1 | ||
49 | -#define FPDF_SEGMENT_MOVETO 2 | ||
50 | - | ||
51 | -#define FPDF_FILLMODE_NONE 0 | ||
52 | -#define FPDF_FILLMODE_ALTERNATE 1 | ||
53 | -#define FPDF_FILLMODE_WINDING 2 | ||
54 | - | ||
55 | -#define FPDF_FONT_TYPE1 1 | ||
56 | -#define FPDF_FONT_TRUETYPE 2 | ||
57 | - | ||
58 | -#define FPDF_LINECAP_BUTT 0 | ||
59 | -#define FPDF_LINECAP_ROUND 1 | ||
60 | -#define FPDF_LINECAP_PROJECTING_SQUARE 2 | ||
61 | - | ||
62 | -#define FPDF_LINEJOIN_MITER 0 | ||
63 | -#define FPDF_LINEJOIN_ROUND 1 | ||
64 | -#define FPDF_LINEJOIN_BEVEL 2 | ||
65 | - | ||
66 | -// See FPDF_SetPrintMode() for descriptions. | ||
67 | -#define FPDF_PRINTMODE_EMF 0 | ||
68 | -#define FPDF_PRINTMODE_TEXTONLY 1 | ||
69 | -#define FPDF_PRINTMODE_POSTSCRIPT2 2 | ||
70 | -#define FPDF_PRINTMODE_POSTSCRIPT3 3 | ||
71 | -#define FPDF_PRINTMODE_POSTSCRIPT2_PASSTHROUGH 4 | ||
72 | -#define FPDF_PRINTMODE_POSTSCRIPT3_PASSTHROUGH 5 | ||
73 | -#define FPDF_PRINTMODE_EMF_IMAGE_MASKS 6 | ||
74 | - | ||
75 | -typedef struct FPDF_IMAGEOBJ_METADATA { | ||
76 | - // The image width in pixels. | ||
77 | - unsigned int width; | ||
78 | - // The image height in pixels. | ||
79 | - unsigned int height; | ||
80 | - // The image's horizontal pixel-per-inch. | ||
81 | - float horizontal_dpi; | ||
82 | - // The image's vertical pixel-per-inch. | ||
83 | - float vertical_dpi; | ||
84 | - // The number of bits used to represent each pixel. | ||
85 | - unsigned int bits_per_pixel; | ||
86 | - // The image's colorspace. See above for the list of FPDF_COLORSPACE_*. | ||
87 | - int colorspace; | ||
88 | - // The image's marked content ID. Useful for pairing with associated alt-text. | ||
89 | - // A value of -1 indicates no ID. | ||
90 | - int marked_content_id; | ||
91 | -} FPDF_IMAGEOBJ_METADATA; | ||
92 | - | ||
93 | -#ifdef __cplusplus | ||
94 | -extern "C" { | ||
95 | -#endif // __cplusplus | ||
96 | - | ||
97 | -// Create a new PDF document. | ||
98 | -// | ||
99 | -// Returns a handle to a new document, or NULL on failure. | ||
100 | -FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_CreateNewDocument(); | ||
101 | - | ||
102 | -// Create a new PDF page. | ||
103 | -// | ||
104 | -// document - handle to document. | ||
105 | -// page_index - suggested 0-based index of the page to create. If it is larger | ||
106 | -// than document's current last index(L), the created page index | ||
107 | -// is the next available index -- L+1. | ||
108 | -// width - the page width in points. | ||
109 | -// height - the page height in points. | ||
110 | -// | ||
111 | -// Returns the handle to the new page or NULL on failure. | ||
112 | -// | ||
113 | -// The page should be closed with FPDF_ClosePage() when finished as | ||
114 | -// with any other page in the document. | ||
115 | -FPDF_EXPORT FPDF_PAGE FPDF_CALLCONV FPDFPage_New(FPDF_DOCUMENT document, | ||
116 | - int page_index, | ||
117 | - double width, | ||
118 | - double height); | ||
119 | - | ||
120 | -// Delete the page at |page_index|. | ||
121 | -// | ||
122 | -// document - handle to document. | ||
123 | -// page_index - the index of the page to delete. | ||
124 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPage_Delete(FPDF_DOCUMENT document, | ||
125 | - int page_index); | ||
126 | - | ||
127 | -// Get the rotation of |page|. | ||
128 | -// | ||
129 | -// page - handle to a page | ||
130 | -// | ||
131 | -// Returns one of the following indicating the page rotation: | ||
132 | -// 0 - No rotation. | ||
133 | -// 1 - Rotated 90 degrees clockwise. | ||
134 | -// 2 - Rotated 180 degrees clockwise. | ||
135 | -// 3 - Rotated 270 degrees clockwise. | ||
136 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetRotation(FPDF_PAGE page); | ||
137 | - | ||
138 | -// Set rotation for |page|. | ||
139 | -// | ||
140 | -// page - handle to a page. | ||
141 | -// rotate - the rotation value, one of: | ||
142 | -// 0 - No rotation. | ||
143 | -// 1 - Rotated 90 degrees clockwise. | ||
144 | -// 2 - Rotated 180 degrees clockwise. | ||
145 | -// 3 - Rotated 270 degrees clockwise. | ||
146 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPage_SetRotation(FPDF_PAGE page, int rotate); | ||
147 | - | ||
148 | -// Insert |page_obj| into |page|. | ||
149 | -// | ||
150 | -// page - handle to a page | ||
151 | -// page_obj - handle to a page object. The |page_obj| will be automatically | ||
152 | -// freed. | ||
153 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPage_InsertObject(FPDF_PAGE page, | ||
154 | - FPDF_PAGEOBJECT page_obj); | ||
155 | - | ||
156 | -// Experimental API. | ||
157 | -// Remove |page_obj| from |page|. | ||
158 | -// | ||
159 | -// page - handle to a page | ||
160 | -// page_obj - handle to a page object to be removed. | ||
161 | -// | ||
162 | -// Returns TRUE on success. | ||
163 | -// | ||
164 | -// Ownership is transferred to the caller. Call FPDFPageObj_Destroy() to free | ||
165 | -// it. | ||
166 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
167 | -FPDFPage_RemoveObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj); | ||
168 | - | ||
169 | -// Get number of page objects inside |page|. | ||
170 | -// | ||
171 | -// page - handle to a page. | ||
172 | -// | ||
173 | -// Returns the number of objects in |page|. | ||
174 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPage_CountObjects(FPDF_PAGE page); | ||
175 | - | ||
176 | -// Get object in |page| at |index|. | ||
177 | -// | ||
178 | -// page - handle to a page. | ||
179 | -// index - the index of a page object. | ||
180 | -// | ||
181 | -// Returns the handle to the page object, or NULL on failed. | ||
182 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPage_GetObject(FPDF_PAGE page, | ||
183 | - int index); | ||
184 | - | ||
185 | -// Checks if |page| contains transparency. | ||
186 | -// | ||
187 | -// page - handle to a page. | ||
188 | -// | ||
189 | -// Returns TRUE if |page| contains transparency. | ||
190 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_HasTransparency(FPDF_PAGE page); | ||
191 | - | ||
192 | -// Generate the content of |page|. | ||
193 | -// | ||
194 | -// page - handle to a page. | ||
195 | -// | ||
196 | -// Returns TRUE on success. | ||
197 | -// | ||
198 | -// Before you save the page to a file, or reload the page, you must call | ||
199 | -// |FPDFPage_GenerateContent| or any changes to |page| will be lost. | ||
200 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_GenerateContent(FPDF_PAGE page); | ||
201 | - | ||
202 | -// Destroy |page_obj| by releasing its resources. |page_obj| must have been | ||
203 | -// created by FPDFPageObj_CreateNew{Path|Rect}() or | ||
204 | -// FPDFPageObj_New{Text|Image}Obj(). This function must be called on | ||
205 | -// newly-created objects if they are not added to a page through | ||
206 | -// FPDFPage_InsertObject() or to an annotation through FPDFAnnot_AppendObject(). | ||
207 | -// | ||
208 | -// page_obj - handle to a page object. | ||
209 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPageObj_Destroy(FPDF_PAGEOBJECT page_obj); | ||
210 | - | ||
211 | -// Checks if |page_object| contains transparency. | ||
212 | -// | ||
213 | -// page_object - handle to a page object. | ||
214 | -// | ||
215 | -// Returns TRUE if |page_object| contains transparency. | ||
216 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
217 | -FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT page_object); | ||
218 | - | ||
219 | -// Get type of |page_object|. | ||
220 | -// | ||
221 | -// page_object - handle to a page object. | ||
222 | -// | ||
223 | -// Returns one of the FPDF_PAGEOBJ_* values on success, FPDF_PAGEOBJ_UNKNOWN on | ||
224 | -// error. | ||
225 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPageObj_GetType(FPDF_PAGEOBJECT page_object); | ||
226 | - | ||
227 | -// Transform |page_object| by the given matrix. | ||
228 | -// | ||
229 | -// page_object - handle to a page object. | ||
230 | -// a - matrix value. | ||
231 | -// b - matrix value. | ||
232 | -// c - matrix value. | ||
233 | -// d - matrix value. | ||
234 | -// e - matrix value. | ||
235 | -// f - matrix value. | ||
236 | -// | ||
237 | -// The matrix is composed as: | ||
238 | -// |a c e| | ||
239 | -// |b d f| | ||
240 | -// and can be used to scale, rotate, shear and translate the |page_object|. | ||
241 | -FPDF_EXPORT void FPDF_CALLCONV | ||
242 | -FPDFPageObj_Transform(FPDF_PAGEOBJECT page_object, | ||
243 | - double a, | ||
244 | - double b, | ||
245 | - double c, | ||
246 | - double d, | ||
247 | - double e, | ||
248 | - double f); | ||
249 | - | ||
250 | -// Transform all annotations in |page|. | ||
251 | -// | ||
252 | -// page - handle to a page. | ||
253 | -// a - matrix value. | ||
254 | -// b - matrix value. | ||
255 | -// c - matrix value. | ||
256 | -// d - matrix value. | ||
257 | -// e - matrix value. | ||
258 | -// f - matrix value. | ||
259 | -// | ||
260 | -// The matrix is composed as: | ||
261 | -// |a c e| | ||
262 | -// |b d f| | ||
263 | -// and can be used to scale, rotate, shear and translate the |page| annotations. | ||
264 | -FPDF_EXPORT void FPDF_CALLCONV FPDFPage_TransformAnnots(FPDF_PAGE page, | ||
265 | - double a, | ||
266 | - double b, | ||
267 | - double c, | ||
268 | - double d, | ||
269 | - double e, | ||
270 | - double f); | ||
271 | - | ||
272 | -// Create a new image object. | ||
273 | -// | ||
274 | -// document - handle to a document. | ||
275 | -// | ||
276 | -// Returns a handle to a new image object. | ||
277 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV | ||
278 | -FPDFPageObj_NewImageObj(FPDF_DOCUMENT document); | ||
279 | - | ||
280 | -// Experimental API. | ||
281 | -// Get number of content marks in |page_object|. | ||
282 | -// | ||
283 | -// page_object - handle to a page object. | ||
284 | -// | ||
285 | -// Returns the number of content marks in |page_object|, or -1 in case of | ||
286 | -// failure. | ||
287 | -FPDF_EXPORT int FPDF_CALLCONV | ||
288 | -FPDFPageObj_CountMarks(FPDF_PAGEOBJECT page_object); | ||
289 | - | ||
290 | -// Experimental API. | ||
291 | -// Get content mark in |page_object| at |index|. | ||
292 | -// | ||
293 | -// page_object - handle to a page object. | ||
294 | -// index - the index of a page object. | ||
295 | -// | ||
296 | -// Returns the handle to the content mark, or NULL on failure. The handle is | ||
297 | -// still owned by the library, and it should not be freed directly. It becomes | ||
298 | -// invalid if the page object is destroyed, either directly or indirectly by | ||
299 | -// unloading the page. | ||
300 | -FPDF_EXPORT FPDF_PAGEOBJECTMARK FPDF_CALLCONV | ||
301 | -FPDFPageObj_GetMark(FPDF_PAGEOBJECT page_object, unsigned long index); | ||
302 | - | ||
303 | -// Experimental API. | ||
304 | -// Add a new content mark to a |page_object|. | ||
305 | -// | ||
306 | -// page_object - handle to a page object. | ||
307 | -// name - the name (tag) of the mark. | ||
308 | -// | ||
309 | -// Returns the handle to the content mark, or NULL on failure. The handle is | ||
310 | -// still owned by the library, and it should not be freed directly. It becomes | ||
311 | -// invalid if the page object is destroyed, either directly or indirectly by | ||
312 | -// unloading the page. | ||
313 | -FPDF_EXPORT FPDF_PAGEOBJECTMARK FPDF_CALLCONV | ||
314 | -FPDFPageObj_AddMark(FPDF_PAGEOBJECT page_object, FPDF_BYTESTRING name); | ||
315 | - | ||
316 | -// Experimental API. | ||
317 | -// Removes a content |mark| from a |page_object|. | ||
318 | -// The mark handle will be invalid after the removal. | ||
319 | -// | ||
320 | -// page_object - handle to a page object. | ||
321 | -// mark - handle to a content mark in that object to remove. | ||
322 | -// | ||
323 | -// Returns TRUE if the operation succeeded, FALSE if it failed. | ||
324 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
325 | -FPDFPageObj_RemoveMark(FPDF_PAGEOBJECT page_object, FPDF_PAGEOBJECTMARK mark); | ||
326 | - | ||
327 | -// Experimental API. | ||
328 | -// Get the name of a content mark. | ||
329 | -// | ||
330 | -// mark - handle to a content mark. | ||
331 | -// buffer - buffer for holding the returned name in UTF-16LE. This is only | ||
332 | -// modified if |buflen| is longer than the length of the name. | ||
333 | -// Optional, pass null to just retrieve the size of the buffer | ||
334 | -// needed. | ||
335 | -// buflen - length of the buffer. | ||
336 | -// out_buflen - pointer to variable that will receive the minimum buffer size | ||
337 | -// to contain the name. Not filled if FALSE is returned. | ||
338 | -// | ||
339 | -// Returns TRUE if the operation succeeded, FALSE if it failed. | ||
340 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
341 | -FPDFPageObjMark_GetName(FPDF_PAGEOBJECTMARK mark, | ||
342 | - void* buffer, | ||
343 | - unsigned long buflen, | ||
344 | - unsigned long* out_buflen); | ||
345 | - | ||
346 | -// Experimental API. | ||
347 | -// Get the number of key/value pair parameters in |mark|. | ||
348 | -// | ||
349 | -// mark - handle to a content mark. | ||
350 | -// | ||
351 | -// Returns the number of key/value pair parameters |mark|, or -1 in case of | ||
352 | -// failure. | ||
353 | -FPDF_EXPORT int FPDF_CALLCONV | ||
354 | -FPDFPageObjMark_CountParams(FPDF_PAGEOBJECTMARK mark); | ||
355 | - | ||
356 | -// Experimental API. | ||
357 | -// Get the key of a property in a content mark. | ||
358 | -// | ||
359 | -// mark - handle to a content mark. | ||
360 | -// index - index of the property. | ||
361 | -// buffer - buffer for holding the returned key in UTF-16LE. This is only | ||
362 | -// modified if |buflen| is longer than the length of the key. | ||
363 | -// Optional, pass null to just retrieve the size of the buffer | ||
364 | -// needed. | ||
365 | -// buflen - length of the buffer. | ||
366 | -// out_buflen - pointer to variable that will receive the minimum buffer size | ||
367 | -// to contain the key. Not filled if FALSE is returned. | ||
368 | -// | ||
369 | -// Returns TRUE if the operation was successful, FALSE otherwise. | ||
370 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
371 | -FPDFPageObjMark_GetParamKey(FPDF_PAGEOBJECTMARK mark, | ||
372 | - unsigned long index, | ||
373 | - void* buffer, | ||
374 | - unsigned long buflen, | ||
375 | - unsigned long* out_buflen); | ||
376 | - | ||
377 | -// Experimental API. | ||
378 | -// Get the type of the value of a property in a content mark by key. | ||
379 | -// | ||
380 | -// mark - handle to a content mark. | ||
381 | -// key - string key of the property. | ||
382 | -// | ||
383 | -// Returns the type of the value, or FPDF_OBJECT_UNKNOWN in case of failure. | ||
384 | -FPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV | ||
385 | -FPDFPageObjMark_GetParamValueType(FPDF_PAGEOBJECTMARK mark, | ||
386 | - FPDF_BYTESTRING key); | ||
387 | - | ||
388 | -// Experimental API. | ||
389 | -// Get the value of a number property in a content mark by key as int. | ||
390 | -// FPDFPageObjMark_GetParamValueType() should have returned FPDF_OBJECT_NUMBER | ||
391 | -// for this property. | ||
392 | -// | ||
393 | -// mark - handle to a content mark. | ||
394 | -// key - string key of the property. | ||
395 | -// out_value - pointer to variable that will receive the value. Not filled if | ||
396 | -// false is returned. | ||
397 | -// | ||
398 | -// Returns TRUE if the key maps to a number value, FALSE otherwise. | ||
399 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
400 | -FPDFPageObjMark_GetParamIntValue(FPDF_PAGEOBJECTMARK mark, | ||
401 | - FPDF_BYTESTRING key, | ||
402 | - int* out_value); | ||
403 | - | ||
404 | -// Experimental API. | ||
405 | -// Get the value of a string property in a content mark by key. | ||
406 | -// | ||
407 | -// mark - handle to a content mark. | ||
408 | -// key - string key of the property. | ||
409 | -// buffer - buffer for holding the returned value in UTF-16LE. This is | ||
410 | -// only modified if |buflen| is longer than the length of the | ||
411 | -// value. | ||
412 | -// Optional, pass null to just retrieve the size of the buffer | ||
413 | -// needed. | ||
414 | -// buflen - length of the buffer. | ||
415 | -// out_buflen - pointer to variable that will receive the minimum buffer size | ||
416 | -// to contain the value. Not filled if FALSE is returned. | ||
417 | -// | ||
418 | -// Returns TRUE if the key maps to a string/blob value, FALSE otherwise. | ||
419 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
420 | -FPDFPageObjMark_GetParamStringValue(FPDF_PAGEOBJECTMARK mark, | ||
421 | - FPDF_BYTESTRING key, | ||
422 | - void* buffer, | ||
423 | - unsigned long buflen, | ||
424 | - unsigned long* out_buflen); | ||
425 | - | ||
426 | -// Experimental API. | ||
427 | -// Get the value of a blob property in a content mark by key. | ||
428 | -// | ||
429 | -// mark - handle to a content mark. | ||
430 | -// key - string key of the property. | ||
431 | -// buffer - buffer for holding the returned value. This is only modified | ||
432 | -// if |buflen| is at least as long as the length of the value. | ||
433 | -// Optional, pass null to just retrieve the size of the buffer | ||
434 | -// needed. | ||
435 | -// buflen - length of the buffer. | ||
436 | -// out_buflen - pointer to variable that will receive the minimum buffer size | ||
437 | -// to contain the value. Not filled if FALSE is returned. | ||
438 | -// | ||
439 | -// Returns TRUE if the key maps to a string/blob value, FALSE otherwise. | ||
440 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
441 | -FPDFPageObjMark_GetParamBlobValue(FPDF_PAGEOBJECTMARK mark, | ||
442 | - FPDF_BYTESTRING key, | ||
443 | - void* buffer, | ||
444 | - unsigned long buflen, | ||
445 | - unsigned long* out_buflen); | ||
446 | - | ||
447 | -// Experimental API. | ||
448 | -// Set the value of an int property in a content mark by key. If a parameter | ||
449 | -// with key |key| exists, its value is set to |value|. Otherwise, it is added as | ||
450 | -// a new parameter. | ||
451 | -// | ||
452 | -// document - handle to the document. | ||
453 | -// page_object - handle to the page object with the mark. | ||
454 | -// mark - handle to a content mark. | ||
455 | -// key - string key of the property. | ||
456 | -// value - int value to set. | ||
457 | -// | ||
458 | -// Returns TRUE if the operation succeeded, FALSE otherwise. | ||
459 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
460 | -FPDFPageObjMark_SetIntParam(FPDF_DOCUMENT document, | ||
461 | - FPDF_PAGEOBJECT page_object, | ||
462 | - FPDF_PAGEOBJECTMARK mark, | ||
463 | - FPDF_BYTESTRING key, | ||
464 | - int value); | ||
465 | - | ||
466 | -// Experimental API. | ||
467 | -// Set the value of a string property in a content mark by key. If a parameter | ||
468 | -// with key |key| exists, its value is set to |value|. Otherwise, it is added as | ||
469 | -// a new parameter. | ||
470 | -// | ||
471 | -// document - handle to the document. | ||
472 | -// page_object - handle to the page object with the mark. | ||
473 | -// mark - handle to a content mark. | ||
474 | -// key - string key of the property. | ||
475 | -// value - string value to set. | ||
476 | -// | ||
477 | -// Returns TRUE if the operation succeeded, FALSE otherwise. | ||
478 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
479 | -FPDFPageObjMark_SetStringParam(FPDF_DOCUMENT document, | ||
480 | - FPDF_PAGEOBJECT page_object, | ||
481 | - FPDF_PAGEOBJECTMARK mark, | ||
482 | - FPDF_BYTESTRING key, | ||
483 | - FPDF_BYTESTRING value); | ||
484 | - | ||
485 | -// Experimental API. | ||
486 | -// Set the value of a blob property in a content mark by key. If a parameter | ||
487 | -// with key |key| exists, its value is set to |value|. Otherwise, it is added as | ||
488 | -// a new parameter. | ||
489 | -// | ||
490 | -// document - handle to the document. | ||
491 | -// page_object - handle to the page object with the mark. | ||
492 | -// mark - handle to a content mark. | ||
493 | -// key - string key of the property. | ||
494 | -// value - pointer to blob value to set. | ||
495 | -// value_len - size in bytes of |value|. | ||
496 | -// | ||
497 | -// Returns TRUE if the operation succeeded, FALSE otherwise. | ||
498 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
499 | -FPDFPageObjMark_SetBlobParam(FPDF_DOCUMENT document, | ||
500 | - FPDF_PAGEOBJECT page_object, | ||
501 | - FPDF_PAGEOBJECTMARK mark, | ||
502 | - FPDF_BYTESTRING key, | ||
503 | - void* value, | ||
504 | - unsigned long value_len); | ||
505 | - | ||
506 | -// Experimental API. | ||
507 | -// Removes a property from a content mark by key. | ||
508 | -// | ||
509 | -// page_object - handle to the page object with the mark. | ||
510 | -// mark - handle to a content mark. | ||
511 | -// key - string key of the property. | ||
512 | -// | ||
513 | -// Returns TRUE if the operation succeeded, FALSE otherwise. | ||
514 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
515 | -FPDFPageObjMark_RemoveParam(FPDF_PAGEOBJECT page_object, | ||
516 | - FPDF_PAGEOBJECTMARK mark, | ||
517 | - FPDF_BYTESTRING key); | ||
518 | - | ||
519 | -// Load an image from a JPEG image file and then set it into |image_object|. | ||
520 | -// | ||
521 | -// pages - pointer to the start of all loaded pages, may be NULL. | ||
522 | -// count - number of |pages|, may be 0. | ||
523 | -// image_object - handle to an image object. | ||
524 | -// file_access - file access handler which specifies the JPEG image file. | ||
525 | -// | ||
526 | -// Returns TRUE on success. | ||
527 | -// | ||
528 | -// The image object might already have an associated image, which is shared and | ||
529 | -// cached by the loaded pages. In that case, we need to clear the cached image | ||
530 | -// for all the loaded pages. Pass |pages| and page count (|count|) to this API | ||
531 | -// to clear the image cache. If the image is not previously shared, or NULL is a | ||
532 | -// valid |pages| value. | ||
533 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
534 | -FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages, | ||
535 | - int count, | ||
536 | - FPDF_PAGEOBJECT image_object, | ||
537 | - FPDF_FILEACCESS* file_access); | ||
538 | - | ||
539 | -// Load an image from a JPEG image file and then set it into |image_object|. | ||
540 | -// | ||
541 | -// pages - pointer to the start of all loaded pages, may be NULL. | ||
542 | -// count - number of |pages|, may be 0. | ||
543 | -// image_object - handle to an image object. | ||
544 | -// file_access - file access handler which specifies the JPEG image file. | ||
545 | -// | ||
546 | -// Returns TRUE on success. | ||
547 | -// | ||
548 | -// The image object might already have an associated image, which is shared and | ||
549 | -// cached by the loaded pages. In that case, we need to clear the cached image | ||
550 | -// for all the loaded pages. Pass |pages| and page count (|count|) to this API | ||
551 | -// to clear the image cache. If the image is not previously shared, or NULL is a | ||
552 | -// valid |pages| value. This function loads the JPEG image inline, so the image | ||
553 | -// content is copied to the file. This allows |file_access| and its associated | ||
554 | -// data to be deleted after this function returns. | ||
555 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
556 | -FPDFImageObj_LoadJpegFileInline(FPDF_PAGE* pages, | ||
557 | - int count, | ||
558 | - FPDF_PAGEOBJECT image_object, | ||
559 | - FPDF_FILEACCESS* file_access); | ||
560 | - | ||
561 | -// Experimental API. | ||
562 | -// Get the transform matrix of an image object. | ||
563 | -// | ||
564 | -// image_object - handle to an image object. | ||
565 | -// a - matrix value. | ||
566 | -// b - matrix value. | ||
567 | -// c - matrix value. | ||
568 | -// d - matrix value. | ||
569 | -// e - matrix value. | ||
570 | -// f - matrix value. | ||
571 | -// | ||
572 | -// The matrix is composed as: | ||
573 | -// |a c e| | ||
574 | -// |b d f| | ||
575 | -// and used to scale, rotate, shear and translate the image. | ||
576 | -// | ||
577 | -// Returns TRUE on success. | ||
578 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
579 | -FPDFImageObj_GetMatrix(FPDF_PAGEOBJECT image_object, | ||
580 | - double* a, | ||
581 | - double* b, | ||
582 | - double* c, | ||
583 | - double* d, | ||
584 | - double* e, | ||
585 | - double* f); | ||
586 | - | ||
587 | -// Set the transform matrix of |image_object|. | ||
588 | -// | ||
589 | -// image_object - handle to an image object. | ||
590 | -// a - matrix value. | ||
591 | -// b - matrix value. | ||
592 | -// c - matrix value. | ||
593 | -// d - matrix value. | ||
594 | -// e - matrix value. | ||
595 | -// f - matrix value. | ||
596 | -// | ||
597 | -// The matrix is composed as: | ||
598 | -// |a c e| | ||
599 | -// |b d f| | ||
600 | -// and can be used to scale, rotate, shear and translate the |image_object|. | ||
601 | -// | ||
602 | -// Returns TRUE on success. | ||
603 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
604 | -FPDFImageObj_SetMatrix(FPDF_PAGEOBJECT image_object, | ||
605 | - double a, | ||
606 | - double b, | ||
607 | - double c, | ||
608 | - double d, | ||
609 | - double e, | ||
610 | - double f); | ||
611 | - | ||
612 | -// Set |bitmap| to |image_object|. | ||
613 | -// | ||
614 | -// pages - pointer to the start of all loaded pages, may be NULL. | ||
615 | -// count - number of |pages|, may be 0. | ||
616 | -// image_object - handle to an image object. | ||
617 | -// bitmap - handle of the bitmap. | ||
618 | -// | ||
619 | -// Returns TRUE on success. | ||
620 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
621 | -FPDFImageObj_SetBitmap(FPDF_PAGE* pages, | ||
622 | - int count, | ||
623 | - FPDF_PAGEOBJECT image_object, | ||
624 | - FPDF_BITMAP bitmap); | ||
625 | - | ||
626 | -// Get a bitmap rasterization of |image_object|. FPDFImageObj_GetBitmap() only | ||
627 | -// operates on |image_object| and does not take the associated image mask into | ||
628 | -// account. It also ignores the matrix for |image_object|. | ||
629 | -// The returned bitmap will be owned by the caller, and FPDFBitmap_Destroy() | ||
630 | -// must be called on the returned bitmap when it is no longer needed. | ||
631 | -// | ||
632 | -// image_object - handle to an image object. | ||
633 | -// | ||
634 | -// Returns the bitmap. | ||
635 | -FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV | ||
636 | -FPDFImageObj_GetBitmap(FPDF_PAGEOBJECT image_object); | ||
637 | - | ||
638 | -// Experimental API. | ||
639 | -// Get a bitmap rasterization of |image_object| that takes the image mask and | ||
640 | -// image matrix into account. To render correctly, the caller must provide the | ||
641 | -// |document| associated with |image_object|. If there is a |page| associated | ||
642 | -// with |image_object| the caller should provide that as well. | ||
643 | -// The returned bitmap will be owned by the caller, and FPDFBitmap_Destroy() | ||
644 | -// must be called on the returned bitmap when it is no longer needed. | ||
645 | -// | ||
646 | -// document - handle to a document associated with |image_object|. | ||
647 | -// page - handle to an optional page associated with |image_object|. | ||
648 | -// image_object - handle to an image object. | ||
649 | -// | ||
650 | -// Returns the bitmap. | ||
651 | -FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV | ||
652 | -FPDFImageObj_GetRenderedBitmap(FPDF_DOCUMENT document, | ||
653 | - FPDF_PAGE page, | ||
654 | - FPDF_PAGEOBJECT image_object); | ||
655 | - | ||
656 | -// Get the decoded image data of |image_object|. The decoded data is the | ||
657 | -// uncompressed image data, i.e. the raw image data after having all filters | ||
658 | -// applied. |buffer| is only modified if |buflen| is longer than the length of | ||
659 | -// the decoded image data. | ||
660 | -// | ||
661 | -// image_object - handle to an image object. | ||
662 | -// buffer - buffer for holding the decoded image data. | ||
663 | -// buflen - length of the buffer in bytes. | ||
664 | -// | ||
665 | -// Returns the length of the decoded image data. | ||
666 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
667 | -FPDFImageObj_GetImageDataDecoded(FPDF_PAGEOBJECT image_object, | ||
668 | - void* buffer, | ||
669 | - unsigned long buflen); | ||
670 | - | ||
671 | -// Get the raw image data of |image_object|. The raw data is the image data as | ||
672 | -// stored in the PDF without applying any filters. |buffer| is only modified if | ||
673 | -// |buflen| is longer than the length of the raw image data. | ||
674 | -// | ||
675 | -// image_object - handle to an image object. | ||
676 | -// buffer - buffer for holding the raw image data. | ||
677 | -// buflen - length of the buffer in bytes. | ||
678 | -// | ||
679 | -// Returns the length of the raw image data. | ||
680 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
681 | -FPDFImageObj_GetImageDataRaw(FPDF_PAGEOBJECT image_object, | ||
682 | - void* buffer, | ||
683 | - unsigned long buflen); | ||
684 | - | ||
685 | -// Get the number of filters (i.e. decoders) of the image in |image_object|. | ||
686 | -// | ||
687 | -// image_object - handle to an image object. | ||
688 | -// | ||
689 | -// Returns the number of |image_object|'s filters. | ||
690 | -FPDF_EXPORT int FPDF_CALLCONV | ||
691 | -FPDFImageObj_GetImageFilterCount(FPDF_PAGEOBJECT image_object); | ||
692 | - | ||
693 | -// Get the filter at |index| of |image_object|'s list of filters. Note that the | ||
694 | -// filters need to be applied in order, i.e. the first filter should be applied | ||
695 | -// first, then the second, etc. |buffer| is only modified if |buflen| is longer | ||
696 | -// than the length of the filter string. | ||
697 | -// | ||
698 | -// image_object - handle to an image object. | ||
699 | -// index - the index of the filter requested. | ||
700 | -// buffer - buffer for holding filter string, encoded in UTF-8. | ||
701 | -// buflen - length of the buffer. | ||
702 | -// | ||
703 | -// Returns the length of the filter string. | ||
704 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
705 | -FPDFImageObj_GetImageFilter(FPDF_PAGEOBJECT image_object, | ||
706 | - int index, | ||
707 | - void* buffer, | ||
708 | - unsigned long buflen); | ||
709 | - | ||
710 | -// Get the image metadata of |image_object|, including dimension, DPI, bits per | ||
711 | -// pixel, and colorspace. If the |image_object| is not an image object or if it | ||
712 | -// does not have an image, then the return value will be false. Otherwise, | ||
713 | -// failure to retrieve any specific parameter would result in its value being 0. | ||
714 | -// | ||
715 | -// image_object - handle to an image object. | ||
716 | -// page - handle to the page that |image_object| is on. Required for | ||
717 | -// retrieving the image's bits per pixel and colorspace. | ||
718 | -// metadata - receives the image metadata; must not be NULL. | ||
719 | -// | ||
720 | -// Returns true if successful. | ||
721 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
722 | -FPDFImageObj_GetImageMetadata(FPDF_PAGEOBJECT image_object, | ||
723 | - FPDF_PAGE page, | ||
724 | - FPDF_IMAGEOBJ_METADATA* metadata); | ||
725 | - | ||
726 | -// Create a new path object at an initial position. | ||
727 | -// | ||
728 | -// x - initial horizontal position. | ||
729 | -// y - initial vertical position. | ||
730 | -// | ||
731 | -// Returns a handle to a new path object. | ||
732 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewPath(float x, | ||
733 | - float y); | ||
734 | - | ||
735 | -// Create a closed path consisting of a rectangle. | ||
736 | -// | ||
737 | -// x - horizontal position for the left boundary of the rectangle. | ||
738 | -// y - vertical position for the bottom boundary of the rectangle. | ||
739 | -// w - width of the rectangle. | ||
740 | -// h - height of the rectangle. | ||
741 | -// | ||
742 | -// Returns a handle to the new path object. | ||
743 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewRect(float x, | ||
744 | - float y, | ||
745 | - float w, | ||
746 | - float h); | ||
747 | - | ||
748 | -// Get the bounding box of |page_object|. | ||
749 | -// | ||
750 | -// page_object - handle to a page object. | ||
751 | -// left - pointer where the left coordinate will be stored | ||
752 | -// bottom - pointer where the bottom coordinate will be stored | ||
753 | -// right - pointer where the right coordinate will be stored | ||
754 | -// top - pointer where the top coordinate will be stored | ||
755 | -// | ||
756 | -// Returns TRUE on success. | ||
757 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
758 | -FPDFPageObj_GetBounds(FPDF_PAGEOBJECT page_object, | ||
759 | - float* left, | ||
760 | - float* bottom, | ||
761 | - float* right, | ||
762 | - float* top); | ||
763 | - | ||
764 | -// Set the blend mode of |page_object|. | ||
765 | -// | ||
766 | -// page_object - handle to a page object. | ||
767 | -// blend_mode - string containing the blend mode. | ||
768 | -// | ||
769 | -// Blend mode can be one of following: Color, ColorBurn, ColorDodge, Darken, | ||
770 | -// Difference, Exclusion, HardLight, Hue, Lighten, Luminosity, Multiply, Normal, | ||
771 | -// Overlay, Saturation, Screen, SoftLight | ||
772 | -FPDF_EXPORT void FPDF_CALLCONV | ||
773 | -FPDFPageObj_SetBlendMode(FPDF_PAGEOBJECT page_object, | ||
774 | - FPDF_BYTESTRING blend_mode); | ||
775 | - | ||
776 | -// Set the stroke RGBA of a page object. Range of values: 0 - 255. | ||
777 | -// | ||
778 | -// page_object - the handle to the page object. | ||
779 | -// R - the red component for the object's stroke color. | ||
780 | -// G - the green component for the object's stroke color. | ||
781 | -// B - the blue component for the object's stroke color. | ||
782 | -// A - the stroke alpha for the object. | ||
783 | -// | ||
784 | -// Returns TRUE on success. | ||
785 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
786 | -FPDFPageObj_SetStrokeColor(FPDF_PAGEOBJECT page_object, | ||
787 | - unsigned int R, | ||
788 | - unsigned int G, | ||
789 | - unsigned int B, | ||
790 | - unsigned int A); | ||
791 | - | ||
792 | -// Get the stroke RGBA of a page object. Range of values: 0 - 255. | ||
793 | -// | ||
794 | -// page_object - the handle to the page object. | ||
795 | -// R - the red component of the path stroke color. | ||
796 | -// G - the green component of the object's stroke color. | ||
797 | -// B - the blue component of the object's stroke color. | ||
798 | -// A - the stroke alpha of the object. | ||
799 | -// | ||
800 | -// Returns TRUE on success. | ||
801 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
802 | -FPDFPageObj_GetStrokeColor(FPDF_PAGEOBJECT page_object, | ||
803 | - unsigned int* R, | ||
804 | - unsigned int* G, | ||
805 | - unsigned int* B, | ||
806 | - unsigned int* A); | ||
807 | - | ||
808 | -// Set the stroke width of a page object. | ||
809 | -// | ||
810 | -// path - the handle to the page object. | ||
811 | -// width - the width of the stroke. | ||
812 | -// | ||
813 | -// Returns TRUE on success | ||
814 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
815 | -FPDFPageObj_SetStrokeWidth(FPDF_PAGEOBJECT page_object, float width); | ||
816 | - | ||
817 | -// Experimental API. | ||
818 | -// Get the stroke width of a page object. | ||
819 | -// | ||
820 | -// path - the handle to the page object. | ||
821 | -// width - the width of the stroke. | ||
822 | -// | ||
823 | -// Returns TRUE on success | ||
824 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
825 | -FPDFPageObj_GetStrokeWidth(FPDF_PAGEOBJECT page_object, float* width); | ||
826 | - | ||
827 | -// Get the line join of |page_object|. | ||
828 | -// | ||
829 | -// page_object - handle to a page object. | ||
830 | -// | ||
831 | -// Returns the line join, or -1 on failure. | ||
832 | -// Line join can be one of following: FPDF_LINEJOIN_MITER, FPDF_LINEJOIN_ROUND, | ||
833 | -// FPDF_LINEJOIN_BEVEL | ||
834 | -FPDF_EXPORT int FPDF_CALLCONV | ||
835 | -FPDFPageObj_GetLineJoin(FPDF_PAGEOBJECT page_object); | ||
836 | - | ||
837 | -// Set the line join of |page_object|. | ||
838 | -// | ||
839 | -// page_object - handle to a page object. | ||
840 | -// line_join - line join | ||
841 | -// | ||
842 | -// Line join can be one of following: FPDF_LINEJOIN_MITER, FPDF_LINEJOIN_ROUND, | ||
843 | -// FPDF_LINEJOIN_BEVEL | ||
844 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
845 | -FPDFPageObj_SetLineJoin(FPDF_PAGEOBJECT page_object, int line_join); | ||
846 | - | ||
847 | -// Get the line cap of |page_object|. | ||
848 | -// | ||
849 | -// page_object - handle to a page object. | ||
850 | -// | ||
851 | -// Returns the line cap, or -1 on failure. | ||
852 | -// Line cap can be one of following: FPDF_LINECAP_BUTT, FPDF_LINECAP_ROUND, | ||
853 | -// FPDF_LINECAP_PROJECTING_SQUARE | ||
854 | -FPDF_EXPORT int FPDF_CALLCONV | ||
855 | -FPDFPageObj_GetLineCap(FPDF_PAGEOBJECT page_object); | ||
856 | - | ||
857 | -// Set the line cap of |page_object|. | ||
858 | -// | ||
859 | -// page_object - handle to a page object. | ||
860 | -// line_cap - line cap | ||
861 | -// | ||
862 | -// Line cap can be one of following: FPDF_LINECAP_BUTT, FPDF_LINECAP_ROUND, | ||
863 | -// FPDF_LINECAP_PROJECTING_SQUARE | ||
864 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
865 | -FPDFPageObj_SetLineCap(FPDF_PAGEOBJECT page_object, int line_cap); | ||
866 | - | ||
867 | -// Set the fill RGBA of a page object. Range of values: 0 - 255. | ||
868 | -// | ||
869 | -// page_object - the handle to the page object. | ||
870 | -// R - the red component for the object's fill color. | ||
871 | -// G - the green component for the object's fill color. | ||
872 | -// B - the blue component for the object's fill color. | ||
873 | -// A - the fill alpha for the object. | ||
874 | -// | ||
875 | -// Returns TRUE on success. | ||
876 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
877 | -FPDFPageObj_SetFillColor(FPDF_PAGEOBJECT page_object, | ||
878 | - unsigned int R, | ||
879 | - unsigned int G, | ||
880 | - unsigned int B, | ||
881 | - unsigned int A); | ||
882 | - | ||
883 | -// Get the fill RGBA of a page object. Range of values: 0 - 255. | ||
884 | -// | ||
885 | -// page_object - the handle to the page object. | ||
886 | -// R - the red component of the object's fill color. | ||
887 | -// G - the green component of the object's fill color. | ||
888 | -// B - the blue component of the object's fill color. | ||
889 | -// A - the fill alpha of the object. | ||
890 | -// | ||
891 | -// Returns TRUE on success. | ||
892 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
893 | -FPDFPageObj_GetFillColor(FPDF_PAGEOBJECT page_object, | ||
894 | - unsigned int* R, | ||
895 | - unsigned int* G, | ||
896 | - unsigned int* B, | ||
897 | - unsigned int* A); | ||
898 | - | ||
899 | -// Experimental API. | ||
900 | -// Get number of segments inside |path|. | ||
901 | -// | ||
902 | -// path - handle to a path. | ||
903 | -// | ||
904 | -// A segment is a command, created by e.g. FPDFPath_MoveTo(), | ||
905 | -// FPDFPath_LineTo() or FPDFPath_BezierTo(). | ||
906 | -// | ||
907 | -// Returns the number of objects in |path| or -1 on failure. | ||
908 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPath_CountSegments(FPDF_PAGEOBJECT path); | ||
909 | - | ||
910 | -// Experimental API. | ||
911 | -// Get segment in |path| at |index|. | ||
912 | -// | ||
913 | -// path - handle to a path. | ||
914 | -// index - the index of a segment. | ||
915 | -// | ||
916 | -// Returns the handle to the segment, or NULL on faiure. | ||
917 | -FPDF_EXPORT FPDF_PATHSEGMENT FPDF_CALLCONV | ||
918 | -FPDFPath_GetPathSegment(FPDF_PAGEOBJECT path, int index); | ||
919 | - | ||
920 | -// Experimental API. | ||
921 | -// Get coordinates of |segment|. | ||
922 | -// | ||
923 | -// segment - handle to a segment. | ||
924 | -// x - the horizontal position of the segment. | ||
925 | -// y - the vertical position of the segment. | ||
926 | -// | ||
927 | -// Returns TRUE on success, otherwise |x| and |y| is not set. | ||
928 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
929 | -FPDFPathSegment_GetPoint(FPDF_PATHSEGMENT segment, float* x, float* y); | ||
930 | - | ||
931 | -// Experimental API. | ||
932 | -// Get type of |segment|. | ||
933 | -// | ||
934 | -// segment - handle to a segment. | ||
935 | -// | ||
936 | -// Returns one of the FPDF_SEGMENT_* values on success, | ||
937 | -// FPDF_SEGMENT_UNKNOWN on error. | ||
938 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPathSegment_GetType(FPDF_PATHSEGMENT segment); | ||
939 | - | ||
940 | -// Experimental API. | ||
941 | -// Gets if the |segment| closes the current subpath of a given path. | ||
942 | -// | ||
943 | -// segment - handle to a segment. | ||
944 | -// | ||
945 | -// Returns close flag for non-NULL segment, FALSE otherwise. | ||
946 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
947 | -FPDFPathSegment_GetClose(FPDF_PATHSEGMENT segment); | ||
948 | - | ||
949 | -// Move a path's current point. | ||
950 | -// | ||
951 | -// path - the handle to the path object. | ||
952 | -// x - the horizontal position of the new current point. | ||
953 | -// y - the vertical position of the new current point. | ||
954 | -// | ||
955 | -// Note that no line will be created between the previous current point and the | ||
956 | -// new one. | ||
957 | -// | ||
958 | -// Returns TRUE on success | ||
959 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_MoveTo(FPDF_PAGEOBJECT path, | ||
960 | - float x, | ||
961 | - float y); | ||
962 | - | ||
963 | -// Add a line between the current point and a new point in the path. | ||
964 | -// | ||
965 | -// path - the handle to the path object. | ||
966 | -// x - the horizontal position of the new point. | ||
967 | -// y - the vertical position of the new point. | ||
968 | -// | ||
969 | -// The path's current point is changed to (x, y). | ||
970 | -// | ||
971 | -// Returns TRUE on success | ||
972 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_LineTo(FPDF_PAGEOBJECT path, | ||
973 | - float x, | ||
974 | - float y); | ||
975 | - | ||
976 | -// Add a cubic Bezier curve to the given path, starting at the current point. | ||
977 | -// | ||
978 | -// path - the handle to the path object. | ||
979 | -// x1 - the horizontal position of the first Bezier control point. | ||
980 | -// y1 - the vertical position of the first Bezier control point. | ||
981 | -// x2 - the horizontal position of the second Bezier control point. | ||
982 | -// y2 - the vertical position of the second Bezier control point. | ||
983 | -// x3 - the horizontal position of the ending point of the Bezier curve. | ||
984 | -// y3 - the vertical position of the ending point of the Bezier curve. | ||
985 | -// | ||
986 | -// Returns TRUE on success | ||
987 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_BezierTo(FPDF_PAGEOBJECT path, | ||
988 | - float x1, | ||
989 | - float y1, | ||
990 | - float x2, | ||
991 | - float y2, | ||
992 | - float x3, | ||
993 | - float y3); | ||
994 | - | ||
995 | -// Close the current subpath of a given path. | ||
996 | -// | ||
997 | -// path - the handle to the path object. | ||
998 | -// | ||
999 | -// This will add a line between the current point and the initial point of the | ||
1000 | -// subpath, thus terminating the current subpath. | ||
1001 | -// | ||
1002 | -// Returns TRUE on success | ||
1003 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_Close(FPDF_PAGEOBJECT path); | ||
1004 | - | ||
1005 | -// Set the drawing mode of a path. | ||
1006 | -// | ||
1007 | -// path - the handle to the path object. | ||
1008 | -// fillmode - the filling mode to be set: one of the FPDF_FILLMODE_* flags. | ||
1009 | -// stroke - a boolean specifying if the path should be stroked or not. | ||
1010 | -// | ||
1011 | -// Returns TRUE on success | ||
1012 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetDrawMode(FPDF_PAGEOBJECT path, | ||
1013 | - int fillmode, | ||
1014 | - FPDF_BOOL stroke); | ||
1015 | - | ||
1016 | -// Experimental API. | ||
1017 | -// Get the drawing mode of a path. | ||
1018 | -// | ||
1019 | -// path - the handle to the path object. | ||
1020 | -// fillmode - the filling mode of the path: one of the FPDF_FILLMODE_* flags. | ||
1021 | -// stroke - a boolean specifying if the path is stroked or not. | ||
1022 | -// | ||
1023 | -// Returns TRUE on success | ||
1024 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_GetDrawMode(FPDF_PAGEOBJECT path, | ||
1025 | - int* fillmode, | ||
1026 | - FPDF_BOOL* stroke); | ||
1027 | - | ||
1028 | -// Experimental API. | ||
1029 | -// Get the transform matrix of a path. | ||
1030 | -// | ||
1031 | -// path - handle to a path. | ||
1032 | -// matrix - pointer to struct to receive the matrix value. | ||
1033 | -// | ||
1034 | -// The matrix is composed as: | ||
1035 | -// |a c e| | ||
1036 | -// |b d f| | ||
1037 | -// and used to scale, rotate, shear and translate the path. | ||
1038 | -// | ||
1039 | -// Returns TRUE on success. | ||
1040 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_GetMatrix(FPDF_PAGEOBJECT path, | ||
1041 | - FS_MATRIX* matrix); | ||
1042 | - | ||
1043 | -// Experimental API. | ||
1044 | -// Set the transform matrix of a path. | ||
1045 | -// | ||
1046 | -// path - handle to a path. | ||
1047 | -// matrix - pointer to struct with the matrix value. | ||
1048 | -// | ||
1049 | -// The matrix is composed as: | ||
1050 | -// |a c e| | ||
1051 | -// |b d f| | ||
1052 | -// and can be used to scale, rotate, shear and translate the path. | ||
1053 | -// | ||
1054 | -// Returns TRUE on success. | ||
1055 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetMatrix(FPDF_PAGEOBJECT path, | ||
1056 | - const FS_MATRIX* matrix); | ||
1057 | - | ||
1058 | -// Create a new text object using one of the standard PDF fonts. | ||
1059 | -// | ||
1060 | -// document - handle to the document. | ||
1061 | -// font - string containing the font name, without spaces. | ||
1062 | -// font_size - the font size for the new text object. | ||
1063 | -// | ||
1064 | -// Returns a handle to a new text object, or NULL on failure | ||
1065 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV | ||
1066 | -FPDFPageObj_NewTextObj(FPDF_DOCUMENT document, | ||
1067 | - FPDF_BYTESTRING font, | ||
1068 | - float font_size); | ||
1069 | - | ||
1070 | -// Set the text for a textobject. If it had text, it will be replaced. | ||
1071 | -// | ||
1072 | -// text_object - handle to the text object. | ||
1073 | -// text - the UTF-16LE encoded string containing the text to be added. | ||
1074 | -// | ||
1075 | -// Returns TRUE on success | ||
1076 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
1077 | -FPDFText_SetText(FPDF_PAGEOBJECT text_object, FPDF_WIDESTRING text); | ||
1078 | - | ||
1079 | -// Returns a font object loaded from a stream of data. The font is loaded | ||
1080 | -// into the document. | ||
1081 | -// | ||
1082 | -// document - handle to the document. | ||
1083 | -// data - the stream of data, which will be copied by the font object. | ||
1084 | -// size - size of the stream, in bytes. | ||
1085 | -// font_type - FPDF_FONT_TYPE1 or FPDF_FONT_TRUETYPE depending on the font | ||
1086 | -// type. | ||
1087 | -// cid - a boolean specifying if the font is a CID font or not. | ||
1088 | -// | ||
1089 | -// The loaded font can be closed using FPDFFont_Close. | ||
1090 | -// | ||
1091 | -// Returns NULL on failure | ||
1092 | -FPDF_EXPORT FPDF_FONT FPDF_CALLCONV FPDFText_LoadFont(FPDF_DOCUMENT document, | ||
1093 | - const uint8_t* data, | ||
1094 | - uint32_t size, | ||
1095 | - int font_type, | ||
1096 | - FPDF_BOOL cid); | ||
1097 | - | ||
1098 | -// Experimental API. | ||
1099 | -// Loads one of the standard 14 fonts per PDF spec 1.7 page 416. The preferred | ||
1100 | -// way of using font style is using a dash to separate the name from the style, | ||
1101 | -// for example 'Helvetica-BoldItalic'. | ||
1102 | -// | ||
1103 | -// document - handle to the document. | ||
1104 | -// font - string containing the font name, without spaces. | ||
1105 | -// | ||
1106 | -// The loaded font can be closed using FPDFFont_Close. | ||
1107 | -// | ||
1108 | -// Returns NULL on failure. | ||
1109 | -FPDF_EXPORT FPDF_FONT FPDF_CALLCONV | ||
1110 | -FPDFText_LoadStandardFont(FPDF_DOCUMENT document, FPDF_BYTESTRING font); | ||
1111 | - | ||
1112 | -// Experimental API. | ||
1113 | -// Get the transform matrix of a text object. | ||
1114 | -// | ||
1115 | -// text - handle to a text. | ||
1116 | -// matrix - pointer to struct with the matrix value. | ||
1117 | -// | ||
1118 | -// The matrix is composed as: | ||
1119 | -// |a c e| | ||
1120 | -// |b d f| | ||
1121 | -// and used to scale, rotate, shear and translate the text. | ||
1122 | -// | ||
1123 | -// Returns TRUE on success. | ||
1124 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFTextObj_GetMatrix(FPDF_PAGEOBJECT text, | ||
1125 | - FS_MATRIX* matrix); | ||
1126 | - | ||
1127 | -// Experimental API. | ||
1128 | -// Get the font size of a text object. | ||
1129 | -// | ||
1130 | -// text - handle to a text. | ||
1131 | -// | ||
1132 | -// Returns the font size of the text object, measured in points (about 1/72 | ||
1133 | -// inch) on success; 0 on failure. | ||
1134 | -FPDF_EXPORT float FPDF_CALLCONV FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text); | ||
1135 | - | ||
1136 | -// Close a loaded PDF font. | ||
1137 | -// | ||
1138 | -// font - Handle to the loaded font. | ||
1139 | -FPDF_EXPORT void FPDF_CALLCONV FPDFFont_Close(FPDF_FONT font); | ||
1140 | - | ||
1141 | -// Create a new text object using a loaded font. | ||
1142 | -// | ||
1143 | -// document - handle to the document. | ||
1144 | -// font - handle to the font object. | ||
1145 | -// font_size - the font size for the new text object. | ||
1146 | -// | ||
1147 | -// Returns a handle to a new text object, or NULL on failure | ||
1148 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV | ||
1149 | -FPDFPageObj_CreateTextObj(FPDF_DOCUMENT document, | ||
1150 | - FPDF_FONT font, | ||
1151 | - float font_size); | ||
1152 | - | ||
1153 | -// Experimental API. | ||
1154 | -// Get the text rendering mode of a text object. | ||
1155 | -// | ||
1156 | -// text - the handle to the text object. | ||
1157 | -// | ||
1158 | -// Returns one of the known FPDF_TEXT_RENDERMODE enum values on success, | ||
1159 | -// FPDF_TEXTRENDERMODE_UNKNOWN on error. | ||
1160 | -FPDF_EXPORT FPDF_TEXT_RENDERMODE FPDF_CALLCONV | ||
1161 | -FPDFTextObj_GetTextRenderMode(FPDF_PAGEOBJECT text); | ||
1162 | - | ||
1163 | -// Experimental API. | ||
1164 | -// Set the text rendering mode of a text object. | ||
1165 | -// | ||
1166 | -// text - the handle to the text object. | ||
1167 | -// render_mode - the FPDF_TEXT_RENDERMODE enum value to be set (cannot set to | ||
1168 | -// FPDF_TEXTRENDERMODE_UNKNOWN). | ||
1169 | -// | ||
1170 | -// Returns TRUE on success. | ||
1171 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
1172 | -FPDFTextObj_SetTextRenderMode(FPDF_PAGEOBJECT text, | ||
1173 | - FPDF_TEXT_RENDERMODE render_mode); | ||
1174 | - | ||
1175 | -// Experimental API. | ||
1176 | -// Get the font name of a text object. | ||
1177 | -// | ||
1178 | -// text - the handle to the text object. | ||
1179 | -// buffer - the address of a buffer that receives the font name. | ||
1180 | -// length - the size, in bytes, of |buffer|. | ||
1181 | -// | ||
1182 | -// Returns the number of bytes in the font name (including the trailing NUL | ||
1183 | -// character) on success, 0 on error. | ||
1184 | -// | ||
1185 | -// Regardless of the platform, the |buffer| is always in UTF-8 encoding. | ||
1186 | -// If |length| is less than the returned length, or |buffer| is NULL, |buffer| | ||
1187 | -// will not be modified. | ||
1188 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
1189 | -FPDFTextObj_GetFontName(FPDF_PAGEOBJECT text, | ||
1190 | - void* buffer, | ||
1191 | - unsigned long length); | ||
1192 | - | ||
1193 | -// Experimental API. | ||
1194 | -// Get the text of a text object. | ||
1195 | -// | ||
1196 | -// text_object - the handle to the text object. | ||
1197 | -// text_page - the handle to the text page. | ||
1198 | -// buffer - the address of a buffer that receives the text. | ||
1199 | -// length - the size, in bytes, of |buffer|. | ||
1200 | -// | ||
1201 | -// Returns the number of bytes in the text (including the trailing NUL | ||
1202 | -// character) on success, 0 on error. | ||
1203 | -// | ||
1204 | -// Regardless of the platform, the |buffer| is always in UTF-16LE encoding. | ||
1205 | -// If |length| is less than the returned length, or |buffer| is NULL, |buffer| | ||
1206 | -// will not be modified. | ||
1207 | -FPDF_EXPORT unsigned long FPDF_CALLCONV | ||
1208 | -FPDFTextObj_GetText(FPDF_PAGEOBJECT text_object, | ||
1209 | - FPDF_TEXTPAGE text_page, | ||
1210 | - void* buffer, | ||
1211 | - unsigned long length); | ||
1212 | - | ||
1213 | -// Experimental API. | ||
1214 | -// Get number of page objects inside |form_object|. | ||
1215 | -// | ||
1216 | -// form_object - handle to a form object. | ||
1217 | -// | ||
1218 | -// Returns the number of objects in |form_object| on success, -1 on error. | ||
1219 | -FPDF_EXPORT int FPDF_CALLCONV | ||
1220 | -FPDFFormObj_CountObjects(FPDF_PAGEOBJECT form_object); | ||
1221 | - | ||
1222 | -// Experimental API. | ||
1223 | -// Get page object in |form_object| at |index|. | ||
1224 | -// | ||
1225 | -// form_object - handle to a form object. | ||
1226 | -// index - the 0-based index of a page object. | ||
1227 | -// | ||
1228 | -// Returns the handle to the page object, or NULL on error. | ||
1229 | -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV | ||
1230 | -FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index); | ||
1231 | - | ||
1232 | -// Experimental API. | ||
1233 | -// Get the transform matrix of a form object. | ||
1234 | -// | ||
1235 | -// form_object - handle to a form. | ||
1236 | -// matrix - pointer to struct to receive the matrix value. | ||
1237 | -// | ||
1238 | -// The matrix is composed as: | ||
1239 | -// |a c e| | ||
1240 | -// |b d f| | ||
1241 | -// and used to scale, rotate, shear and translate the form object. | ||
1242 | -// | ||
1243 | -// Returns TRUE on success. | ||
1244 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
1245 | -FPDFFormObj_GetMatrix(FPDF_PAGEOBJECT form_object, FS_MATRIX* matrix); | ||
1246 | - | ||
1247 | -#ifdef __cplusplus | ||
1248 | -} // extern "C" | ||
1249 | -#endif // __cplusplus | ||
1250 | - | ||
1251 | -#endif // PUBLIC_FPDF_EDIT_H_ |
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | ||
6 | - | ||
7 | -#ifndef PUBLIC_FPDF_EXT_H_ | ||
8 | -#define PUBLIC_FPDF_EXT_H_ | ||
9 | - | ||
10 | -#include <time.h> | ||
11 | - | ||
12 | -// NOLINTNEXTLINE(build/include) | ||
13 | -#include "fpdfview.h" | ||
14 | - | ||
15 | -#ifdef __cplusplus | ||
16 | -extern "C" { | ||
17 | -#endif // __cplusplus | ||
18 | - | ||
19 | -// Unsupported XFA form. | ||
20 | -#define FPDF_UNSP_DOC_XFAFORM 1 | ||
21 | -// Unsupported portable collection. | ||
22 | -#define FPDF_UNSP_DOC_PORTABLECOLLECTION 2 | ||
23 | -// Unsupported attachment. | ||
24 | -#define FPDF_UNSP_DOC_ATTACHMENT 3 | ||
25 | -// Unsupported security. | ||
26 | -#define FPDF_UNSP_DOC_SECURITY 4 | ||
27 | -// Unsupported shared review. | ||
28 | -#define FPDF_UNSP_DOC_SHAREDREVIEW 5 | ||
29 | -// Unsupported shared form, acrobat. | ||
30 | -#define FPDF_UNSP_DOC_SHAREDFORM_ACROBAT 6 | ||
31 | -// Unsupported shared form, filesystem. | ||
32 | -#define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM 7 | ||
33 | -// Unsupported shared form, email. | ||
34 | -#define FPDF_UNSP_DOC_SHAREDFORM_EMAIL 8 | ||
35 | -// Unsupported 3D annotation. | ||
36 | -#define FPDF_UNSP_ANNOT_3DANNOT 11 | ||
37 | -// Unsupported movie annotation. | ||
38 | -#define FPDF_UNSP_ANNOT_MOVIE 12 | ||
39 | -// Unsupported sound annotation. | ||
40 | -#define FPDF_UNSP_ANNOT_SOUND 13 | ||
41 | -// Unsupported screen media annotation. | ||
42 | -#define FPDF_UNSP_ANNOT_SCREEN_MEDIA 14 | ||
43 | -// Unsupported screen rich media annotation. | ||
44 | -#define FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA 15 | ||
45 | -// Unsupported attachment annotation. | ||
46 | -#define FPDF_UNSP_ANNOT_ATTACHMENT 16 | ||
47 | -// Unsupported signature annotation. | ||
48 | -#define FPDF_UNSP_ANNOT_SIG 17 | ||
49 | - | ||
50 | -// Interface for unsupported feature notifications. | ||
51 | -typedef struct _UNSUPPORT_INFO { | ||
52 | - // Version number of the interface. Must be 1. | ||
53 | - int version; | ||
54 | - | ||
55 | - // Unsupported object notification function. | ||
56 | - // Interface Version: 1 | ||
57 | - // Implementation Required: Yes | ||
58 | - // | ||
59 | - // pThis - pointer to the interface structure. | ||
60 | - // nType - the type of unsupported object. One of the |FPDF_UNSP_*| entries. | ||
61 | - void (*FSDK_UnSupport_Handler)(struct _UNSUPPORT_INFO* pThis, int nType); | ||
62 | -} UNSUPPORT_INFO; | ||
63 | - | ||
64 | -// Setup an unsupported object handler. | ||
65 | -// | ||
66 | -// unsp_info - Pointer to an UNSUPPORT_INFO structure. | ||
67 | -// | ||
68 | -// Returns TRUE on success. | ||
69 | -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV | ||
70 | -FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info); | ||
71 | - | ||
72 | -// Set replacement function for calls to time(). | ||
73 | -// | ||
74 | -// This API is intended to be used only for testing, thus may cause PDFium to | ||
75 | -// behave poorly in production environments. | ||
76 | -// | ||
77 | -// func - Function pointer to alternate implementation of time(), or | ||
78 | -// NULL to restore to actual time() call itself. | ||
79 | -FPDF_EXPORT void FPDF_CALLCONV FSDK_SetTimeFunction(time_t (*func)()); | ||
80 | - | ||
81 | -// Set replacement function for calls to localtime(). | ||
82 | -// | ||
83 | -// This API is intended to be used only for testing, thus may cause PDFium to | ||
84 | -// behave poorly in production environments. | ||
85 | -// | ||
86 | -// func - Function pointer to alternate implementation of localtime(), or | ||
87 | -// NULL to restore to actual localtime() call itself. | ||
88 | -FPDF_EXPORT void FPDF_CALLCONV | ||
89 | -FSDK_SetLocaltimeFunction(struct tm* (*func)(const time_t*)); | ||
90 | - | ||
91 | -// Unknown page mode. | ||
92 | -#define PAGEMODE_UNKNOWN -1 | ||
93 | -// Document outline, and thumbnails hidden. | ||
94 | -#define PAGEMODE_USENONE 0 | ||
95 | -// Document outline visible. | ||
96 | -#define PAGEMODE_USEOUTLINES 1 | ||
97 | -// Thumbnail images visible. | ||
98 | -#define PAGEMODE_USETHUMBS 2 | ||
99 | -// Full-screen mode, no menu bar, window controls, or other decorations visible. | ||
100 | -#define PAGEMODE_FULLSCREEN 3 | ||
101 | -// Optional content group panel visible. | ||
102 | -#define PAGEMODE_USEOC 4 | ||
103 | -// Attachments panel visible. | ||
104 | -#define PAGEMODE_USEATTACHMENTS 5 | ||
105 | - | ||
106 | -// Get the document's PageMode. | ||
107 | -// | ||
108 | -// doc - Handle to document. | ||
109 | -// | ||
110 | -// Returns one of the |PAGEMODE_*| flags defined above. | ||
111 | -// | ||
112 | -// The page mode defines how the document should be initially displayed. | ||
113 | -FPDF_EXPORT int FPDF_CALLCONV FPDFDoc_GetPageMode(FPDF_DOCUMENT document); | ||
114 | - | ||
115 | -#ifdef __cplusplus | ||
116 | -} // extern "C" | ||
117 | -#endif // __cplusplus | ||
118 | - | ||
119 | -#endif // PUBLIC_FPDF_EXT_H_ |
1 | -// Copyright 2014 PDFium Authors. All rights reserved. | ||
2 | -// Use of this source code is governed by a BSD-style license that can be | ||
3 | -// found in the LICENSE file. | ||
4 | - | ||
5 | -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | ||
6 | - | ||
7 | -#ifndef PUBLIC_FPDF_FLATTEN_H_ | ||
8 | -#define PUBLIC_FPDF_FLATTEN_H_ | ||
9 | - | ||
10 | -// NOLINTNEXTLINE(build/include) | ||
11 | -#include "fpdfview.h" | ||
12 | - | ||
13 | -// Flatten operation failed. | ||
14 | -#define FLATTEN_FAIL 0 | ||
15 | -// Flatten operation succeed. | ||
16 | -#define FLATTEN_SUCCESS 1 | ||
17 | -// Nothing to be flattened. | ||
18 | -#define FLATTEN_NOTHINGTODO 2 | ||
19 | - | ||
20 | -// Flatten for normal display. | ||
21 | -#define FLAT_NORMALDISPLAY 0 | ||
22 | -// Flatten for print. | ||
23 | -#define FLAT_PRINT 1 | ||
24 | - | ||
25 | -#ifdef __cplusplus | ||
26 | -extern "C" { | ||
27 | -#endif // __cplusplus | ||
28 | - | ||
29 | -// Flatten annotations and form fields into the page contents. | ||
30 | -// | ||
31 | -// page - handle to the page. | ||
32 | -// nFlag - One of the |FLAT_*| values denoting the page usage. | ||
33 | -// | ||
34 | -// Returns one of the |FLATTEN_*| values. | ||
35 | -// | ||
36 | -// Currently, all failures return |FLATTEN_FAIL| with no indication of the | ||
37 | -// cause. | ||
38 | -FPDF_EXPORT int FPDF_CALLCONV FPDFPage_Flatten(FPDF_PAGE page, int nFlag); | ||
39 | - | ||
40 | -#ifdef __cplusplus | ||
41 | -} // extern "C" | ||
42 | -#endif // __cplusplus | ||
43 | - | ||
44 | -#endif // PUBLIC_FPDF_FLATTEN_H_ |
-
Please register or login to post a comment