1 // Copyright 2015 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 // This "C" (not "C++") file ensures that the public headers compile 6 // and link for "C" (and not just "C++"). 7 8 #include <stdio.h> 9 10 #include "fpdfsdk/fpdfview_c_api_test.h" 11 12 #include "public/fpdf_dataavail.h" 13 #include "public/fpdf_doc.h" 14 #include "public/fpdf_edit.h" 15 #include "public/fpdf_ext.h" 16 #include "public/fpdf_flatten.h" 17 #include "public/fpdf_formfill.h" 18 #include "public/fpdf_fwlevent.h" 19 #include "public/fpdf_ppo.h" 20 #include "public/fpdf_progressive.h" 21 #include "public/fpdf_save.h" 22 #include "public/fpdf_searchex.h" 23 #include "public/fpdf_structtree.h" 24 #include "public/fpdf_sysfontinfo.h" 25 #include "public/fpdf_text.h" 26 #include "public/fpdf_transformpage.h" 27 #include "public/fpdfview.h" 28 29 // Scheme for avoiding LTO out of existence, warnings, etc. 30 typedef void (*fnptr)(void); // Legal generic function type for casts. 31 fnptr g_c_api_test_fnptr = NULL; // Extern, so can't know it doesn't change. 32 #define CHK(x) if ((fnptr)(x) == g_c_api_test_fnptr) return 0 33 34 // Function to call from gtest harness to ensure linker resolution. CheckPDFiumCApi()35int CheckPDFiumCApi() { 36 // fpdf_dataavail.h 37 CHK(FPDFAvail_Create); 38 CHK(FPDFAvail_Destroy); 39 CHK(FPDFAvail_IsDocAvail); 40 CHK(FPDFAvail_GetDocument); 41 CHK(FPDFAvail_GetFirstPageNum); 42 CHK(FPDFAvail_IsPageAvail); 43 CHK(FPDFAvail_IsFormAvail); 44 CHK(FPDFAvail_IsLinearized); 45 46 // fpdf_doc.h 47 CHK(FPDFBookmark_GetFirstChild); 48 CHK(FPDFBookmark_GetNextSibling); 49 CHK(FPDFBookmark_GetTitle); 50 CHK(FPDFBookmark_Find); 51 CHK(FPDFBookmark_GetDest); 52 CHK(FPDFBookmark_GetAction); 53 CHK(FPDFAction_GetType); 54 CHK(FPDFAction_GetDest); 55 CHK(FPDFAction_GetFilePath); 56 CHK(FPDFAction_GetURIPath); 57 CHK(FPDFDest_GetPageIndex); 58 CHK(FPDFDest_GetLocationInPage); 59 CHK(FPDFLink_GetLinkAtPoint); 60 CHK(FPDFLink_GetLinkZOrderAtPoint); 61 CHK(FPDFLink_GetDest); 62 CHK(FPDFLink_GetAction); 63 CHK(FPDFLink_Enumerate); 64 CHK(FPDFLink_GetAnnotRect); 65 CHK(FPDFLink_CountQuadPoints); 66 CHK(FPDFLink_GetQuadPoints); 67 CHK(FPDF_GetMetaText); 68 CHK(FPDF_GetPageLabel); 69 70 // fpdf_edit.h 71 CHK(FPDF_CreateNewDocument); 72 CHK(FPDFPage_New); 73 CHK(FPDFPage_Delete); 74 CHK(FPDFPage_GetRotation); 75 CHK(FPDFPage_SetRotation); 76 CHK(FPDFPage_InsertObject); 77 CHK(FPDFPage_CountObject); 78 CHK(FPDFPage_GetObject); 79 CHK(FPDFPage_HasTransparency); 80 CHK(FPDFPage_GenerateContent); 81 CHK(FPDFPageObj_HasTransparency); 82 CHK(FPDFPageObj_Transform); 83 CHK(FPDFPage_TransformAnnots); 84 CHK(FPDFPageObj_NewImgeObj); 85 CHK(FPDFImageObj_LoadJpegFile); 86 CHK(FPDFImageObj_LoadJpegFileInline); 87 CHK(FPDFImageObj_SetMatrix); 88 CHK(FPDFImageObj_SetBitmap); 89 CHK(FPDFPageObj_CreateNewPath); 90 CHK(FPDFPageObj_CreateNewRect); 91 CHK(FPDFPath_SetStrokeColor); 92 CHK(FPDFPath_SetStrokeWidth); 93 CHK(FPDFPath_SetFillColor); 94 CHK(FPDFPath_MoveTo); 95 CHK(FPDFPath_LineTo); 96 CHK(FPDFPath_BezierTo); 97 CHK(FPDFPath_Close); 98 CHK(FPDFPath_SetDrawMode); 99 CHK(FPDFPageObj_NewTextObj); 100 CHK(FPDFText_SetText); 101 CHK(FPDFText_LoadType1Font); 102 103 // fpdf_ext.h 104 CHK(FSDK_SetUnSpObjProcessHandler); 105 CHK(FPDFDoc_GetPageMode); 106 107 // fpdf_flatten.h 108 CHK(FPDFPage_Flatten); 109 110 // fpdf_fwlevent.h - no exports. 111 112 // fpdf_formfill.h 113 CHK(FPDFDOC_InitFormFillEnvironment); 114 CHK(FPDFDOC_ExitFormFillEnvironment); 115 CHK(FORM_OnAfterLoadPage); 116 CHK(FORM_OnBeforeClosePage); 117 CHK(FORM_DoDocumentJSAction); 118 CHK(FORM_DoDocumentOpenAction); 119 CHK(FORM_DoDocumentAAction); 120 CHK(FORM_DoPageAAction); 121 CHK(FORM_OnMouseMove); 122 CHK(FORM_OnLButtonDown); 123 CHK(FORM_OnLButtonUp); 124 #ifdef PDF_ENABLE_XFA 125 CHK(FORM_OnRButtonDown); 126 CHK(FORM_OnRButtonUp); 127 #endif 128 CHK(FORM_OnKeyDown); 129 CHK(FORM_OnKeyUp); 130 CHK(FORM_OnChar); 131 CHK(FORM_ForceToKillFocus); 132 CHK(FPDFPage_HasFormFieldAtPoint); 133 CHK(FPDPage_HasFormFieldAtPoint); // DEPRECATED. Remove in the future. 134 CHK(FPDFPage_FormFieldZOrderAtPoint); 135 CHK(FPDF_SetFormFieldHighlightColor); 136 CHK(FPDF_SetFormFieldHighlightAlpha); 137 CHK(FPDF_RemoveFormFieldHighlight); 138 CHK(FPDF_FFLDraw); 139 #ifdef PDF_ENABLE_XFA 140 CHK(FPDF_HasXFAField); 141 CHK(FPDF_LoadXFA); 142 CHK(FPDF_Widget_Undo); 143 CHK(FPDF_Widget_Redo); 144 CHK(FPDF_Widget_SelectAll); 145 CHK(FPDF_Widget_Copy); 146 CHK(FPDF_Widget_Cut); 147 CHK(FPDF_Widget_Paste); 148 CHK(FPDF_Widget_ReplaceSpellCheckWord); 149 CHK(FPDF_Widget_GetSpellCheckWords); 150 CHK(FPDF_StringHandleCounts); 151 CHK(FPDF_StringHandleGetStringByIndex); 152 CHK(FPDF_StringHandleRelease); 153 CHK(FPDF_StringHandleAddString); 154 #endif 155 156 // fpdf_ppo.h 157 CHK(FPDF_ImportPages); 158 CHK(FPDF_CopyViewerPreferences); 159 160 // fpdf_progressive.h 161 CHK(FPDF_RenderPageBitmap_Start); 162 CHK(FPDF_RenderPage_Continue); 163 CHK(FPDF_RenderPage_Close); 164 165 // fpdf_save.h 166 CHK(FPDF_SaveAsCopy); 167 CHK(FPDF_SaveWithVersion); 168 169 // fpdf_searchex.h 170 CHK(FPDFText_GetCharIndexFromTextIndex); 171 172 // fpdf_structtree.h 173 CHK(FPDF_StructTree_GetForPage); 174 CHK(FPDF_StructTree_Close); 175 CHK(FPDF_StructTree_CountChildren); 176 CHK(FPDF_StructTree_GetChildAtIndex); 177 CHK(FPDF_StructElement_GetAltText); 178 CHK(FPDF_StructElement_CountChildren); 179 CHK(FPDF_StructElement_GetChildAtIndex); 180 181 // fpdf_sysfontinfo.h 182 CHK(FPDF_GetDefaultTTFMap); 183 CHK(FPDF_AddInstalledFont); 184 CHK(FPDF_SetSystemFontInfo); 185 CHK(FPDF_GetDefaultSystemFontInfo); 186 CHK(FPDF_FreeDefaultSystemFontInfo); 187 188 // fpdf_text.h 189 CHK(FPDFText_LoadPage); 190 CHK(FPDFText_ClosePage); 191 CHK(FPDFText_CountChars); 192 CHK(FPDFText_GetUnicode); 193 CHK(FPDFText_GetFontSize); 194 CHK(FPDFText_GetCharBox); 195 CHK(FPDFText_GetCharIndexAtPos); 196 CHK(FPDFText_GetText); 197 CHK(FPDFText_CountRects); 198 CHK(FPDFText_GetRect); 199 CHK(FPDFText_GetBoundedText); 200 CHK(FPDFText_FindStart); 201 CHK(FPDFText_FindNext); 202 CHK(FPDFText_FindPrev); 203 CHK(FPDFText_GetSchResultIndex); 204 CHK(FPDFText_GetSchCount); 205 CHK(FPDFText_FindClose); 206 CHK(FPDFLink_LoadWebLinks); 207 CHK(FPDFLink_CountWebLinks); 208 CHK(FPDFLink_GetURL); 209 CHK(FPDFLink_CountRects); 210 CHK(FPDFLink_GetRect); 211 CHK(FPDFLink_CloseWebLinks); 212 213 // fpdf_transformpage.h 214 CHK(FPDFPage_SetMediaBox); 215 CHK(FPDFPage_SetCropBox); 216 CHK(FPDFPage_GetMediaBox); 217 CHK(FPDFPage_GetCropBox); 218 CHK(FPDFPage_TransFormWithClip); 219 CHK(FPDFPageObj_TransformClipPath); 220 CHK(FPDF_CreateClipPath); 221 CHK(FPDF_DestroyClipPath); 222 CHK(FPDFPage_InsertClipPath); 223 224 // fpdfview.h 225 CHK(FPDF_InitLibrary); 226 CHK(FPDF_InitLibraryWithConfig); 227 CHK(FPDF_DestroyLibrary); 228 CHK(FPDF_SetSandBoxPolicy); 229 CHK(FPDF_LoadDocument); 230 CHK(FPDF_LoadMemDocument); 231 CHK(FPDF_LoadCustomDocument); 232 CHK(FPDF_GetFileVersion); 233 CHK(FPDF_GetLastError); 234 CHK(FPDF_GetDocPermissions); 235 CHK(FPDF_GetSecurityHandlerRevision); 236 CHK(FPDF_GetPageCount); 237 CHK(FPDF_LoadPage); 238 CHK(FPDF_GetPageWidth); 239 CHK(FPDF_GetPageHeight); 240 CHK(FPDF_GetPageSizeByIndex); 241 CHK(FPDF_RenderPageBitmap); 242 CHK(FPDF_RenderPageBitmapWithMatrix); 243 CHK(FPDF_ClosePage); 244 CHK(FPDF_CloseDocument); 245 CHK(FPDF_DeviceToPage); 246 CHK(FPDF_PageToDevice); 247 CHK(FPDFBitmap_Create); 248 CHK(FPDFBitmap_CreateEx); 249 CHK(FPDFBitmap_FillRect); 250 CHK(FPDFBitmap_GetBuffer); 251 CHK(FPDFBitmap_GetWidth); 252 CHK(FPDFBitmap_GetHeight); 253 CHK(FPDFBitmap_GetStride); 254 CHK(FPDFBitmap_Destroy); 255 CHK(FPDF_VIEWERREF_GetPrintScaling); 256 CHK(FPDF_VIEWERREF_GetNumCopies); 257 CHK(FPDF_VIEWERREF_GetPrintPageRange); 258 CHK(FPDF_VIEWERREF_GetDuplex); 259 CHK(FPDF_VIEWERREF_GetName); 260 CHK(FPDF_CountNamedDests); 261 CHK(FPDF_GetNamedDestByName); 262 CHK(FPDF_GetNamedDest); 263 #ifdef PDF_ENABLE_XFA 264 CHK(FPDF_BStr_Init); 265 CHK(FPDF_BStr_Set); 266 CHK(FPDF_BStr_Clear); 267 #endif 268 269 return 1; 270 } 271 272 #undef CHK 273