diff options
Diffstat (limited to 'fpdfsdk/fpdf_view_c_api_test.c')
-rw-r--r-- | fpdfsdk/fpdf_view_c_api_test.c | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/fpdfsdk/fpdf_view_c_api_test.c b/fpdfsdk/fpdf_view_c_api_test.c new file mode 100644 index 0000000000..df7ade8539 --- /dev/null +++ b/fpdfsdk/fpdf_view_c_api_test.c @@ -0,0 +1,382 @@ +// Copyright 2015 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This "C" (not "C++") file ensures that the public headers compile +// and link for "C" (and not just "C++"). + +#include <stdio.h> + +#include "fpdfsdk/fpdf_view_c_api_test.h" + +#include "public/fpdf_annot.h" +#include "public/fpdf_attachment.h" +#include "public/fpdf_catalog.h" +#include "public/fpdf_dataavail.h" +#include "public/fpdf_doc.h" +#include "public/fpdf_edit.h" +#include "public/fpdf_ext.h" +#include "public/fpdf_flatten.h" +#include "public/fpdf_formfill.h" +#include "public/fpdf_fwlevent.h" +#include "public/fpdf_ppo.h" +#include "public/fpdf_progressive.h" +#include "public/fpdf_save.h" +#include "public/fpdf_searchex.h" +#include "public/fpdf_structtree.h" +#include "public/fpdf_sysfontinfo.h" +#include "public/fpdf_text.h" +#include "public/fpdf_transformpage.h" +#include "public/fpdfview.h" + +// Scheme for avoiding LTO out of existence, warnings, etc. +typedef void (*fnptr)(void); // Legal generic function type for casts. +fnptr g_c_api_test_fnptr = NULL; // Extern, so can't know it doesn't change. +#define CHK(x) if ((fnptr)(x) == g_c_api_test_fnptr) return 0 + +// Function to call from gtest harness to ensure linker resolution. +int CheckPDFiumCApi() { + // fpdf_annot.h + CHK(FPDFAnnot_IsSupportedSubtype); + CHK(FPDFPage_CreateAnnot); + CHK(FPDFPage_GetAnnotCount); + CHK(FPDFPage_GetAnnot); + CHK(FPDFPage_GetAnnotIndex); + CHK(FPDFPage_CloseAnnot); + CHK(FPDFPage_RemoveAnnot); + CHK(FPDFAnnot_GetSubtype); + CHK(FPDFAnnot_IsObjectSupportedSubtype); + CHK(FPDFAnnot_UpdateObject); + CHK(FPDFAnnot_AppendObject); + CHK(FPDFAnnot_GetObjectCount); + CHK(FPDFAnnot_GetObject); + CHK(FPDFAnnot_RemoveObject); + CHK(FPDFAnnot_SetColor); + CHK(FPDFAnnot_GetColor); + CHK(FPDFAnnot_HasAttachmentPoints); + CHK(FPDFAnnot_SetAttachmentPoints); + CHK(FPDFAnnot_CountAttachmentPoints); + CHK(FPDFAnnot_GetAttachmentPoints); + CHK(FPDFAnnot_SetRect); + CHK(FPDFAnnot_GetRect); + CHK(FPDFAnnot_HasKey); + CHK(FPDFAnnot_GetValueType); + CHK(FPDFAnnot_SetStringValue); + CHK(FPDFAnnot_GetStringValue); + CHK(FPDFAnnot_SetAP); + CHK(FPDFAnnot_GetAP); + CHK(FPDFAnnot_GetLinkedAnnot); + CHK(FPDFAnnot_GetFlags); + CHK(FPDFAnnot_SetFlags); + CHK(FPDFAnnot_GetFormFieldFlags); + CHK(FPDFAnnot_GetFormFieldAtPoint); + + // fpdf_attachment.h + CHK(FPDFDoc_GetAttachmentCount); + CHK(FPDFDoc_AddAttachment); + CHK(FPDFDoc_GetAttachment); + CHK(FPDFDoc_DeleteAttachment); + CHK(FPDFAttachment_GetName); + CHK(FPDFAttachment_HasKey); + CHK(FPDFAttachment_GetValueType); + CHK(FPDFAttachment_SetStringValue); + CHK(FPDFAttachment_GetStringValue); + CHK(FPDFAttachment_SetFile); + CHK(FPDFAttachment_GetFile); + + // fpdf_catalog.h + CHK(FPDFCatalog_IsTagged); + + // fpdf_dataavail.h + CHK(FPDFAvail_Create); + CHK(FPDFAvail_Destroy); + CHK(FPDFAvail_IsDocAvail); + CHK(FPDFAvail_GetDocument); + CHK(FPDFAvail_GetFirstPageNum); + CHK(FPDFAvail_IsPageAvail); + CHK(FPDFAvail_IsFormAvail); + CHK(FPDFAvail_IsLinearized); + + // fpdf_doc.h + CHK(FPDFBookmark_GetFirstChild); + CHK(FPDFBookmark_GetNextSibling); + CHK(FPDFBookmark_GetTitle); + CHK(FPDFBookmark_Find); + CHK(FPDFBookmark_GetDest); + CHK(FPDFBookmark_GetAction); + CHK(FPDFAction_GetType); + CHK(FPDFAction_GetDest); + CHK(FPDFAction_GetFilePath); + CHK(FPDFAction_GetURIPath); + CHK(FPDFDest_GetDestPageIndex); + CHK(FPDFDest_GetPageIndex); + CHK(FPDFDest_GetLocationInPage); + CHK(FPDFDest_GetView); + CHK(FPDFLink_GetLinkAtPoint); + CHK(FPDFLink_GetLinkZOrderAtPoint); + CHK(FPDFLink_GetDest); + CHK(FPDFLink_GetAction); + CHK(FPDFLink_Enumerate); + CHK(FPDFLink_GetAnnotRect); + CHK(FPDFLink_CountQuadPoints); + CHK(FPDFLink_GetQuadPoints); + CHK(FPDF_GetMetaText); + CHK(FPDF_GetPageLabel); + + // fpdf_edit.h + CHK(FPDF_CreateNewDocument); + CHK(FPDFPage_New); + CHK(FPDFPage_Delete); + CHK(FPDFPage_GetRotation); + CHK(FPDFPage_SetRotation); + CHK(FPDFPage_InsertObject); + CHK(FPDFPage_RemoveObject); + CHK(FPDFPage_CountObject); + CHK(FPDFPage_CountObjects); + CHK(FPDFPage_GetObject); + CHK(FPDFPage_HasTransparency); + CHK(FPDFPage_GenerateContent); + CHK(FPDFPageObj_Destroy); + CHK(FPDFPageObj_HasTransparency); + CHK(FPDFPageObj_GetBounds); + CHK(FPDFPageObj_GetType); + CHK(FPDFPageObj_SetBlendMode); + CHK(FPDFPageObj_Transform); + CHK(FPDFPage_TransformAnnots); + CHK(FPDFPageObj_NewImageObj); + CHK(FPDFPageObj_CountMarks); + CHK(FPDFPageObj_GetMark); + CHK(FPDFPageObjMark_GetName); + CHK(FPDFImageObj_LoadJpegFile); + CHK(FPDFImageObj_LoadJpegFileInline); + CHK(FPDFImageObj_SetMatrix); + CHK(FPDFImageObj_SetBitmap); + CHK(FPDFImageObj_GetBitmap); + CHK(FPDFImageObj_GetImageDataDecoded); + CHK(FPDFImageObj_GetImageDataRaw); + CHK(FPDFImageObj_GetImageFilterCount); + CHK(FPDFImageObj_GetImageFilter); + CHK(FPDFImageObj_GetImageMetadata); + CHK(FPDFPageObj_CreateNewPath); + CHK(FPDFPageObj_CreateNewRect); + CHK(FPDFPath_SetStrokeColor); + CHK(FPDFPath_GetStrokeColor); + CHK(FPDFPath_SetStrokeWidth); + CHK(FPDFPath_SetFillColor); + CHK(FPDFPath_GetFillColor); + CHK(FPDFPath_CountSegments); + CHK(FPDFPath_GetPathSegment); + CHK(FPDFPathSegment_GetPoint); + CHK(FPDFPathSegment_GetType); + CHK(FPDFPathSegment_GetClose); + CHK(FPDFPath_MoveTo); + CHK(FPDFPath_LineTo); + CHK(FPDFPath_BezierTo); + CHK(FPDFPath_Close); + CHK(FPDFPath_SetDrawMode); + CHK(FPDFPath_SetLineCap); + CHK(FPDFPath_SetLineJoin); + CHK(FPDFPageObj_NewTextObj); + CHK(FPDFText_SetText); + CHK(FPDFText_SetFillColor); + CHK(FPDFText_LoadFont); + CHK(FPDFFont_Close); + CHK(FPDFPageObj_CreateTextObj); + + // fpdf_ext.h + CHK(FSDK_SetUnSpObjProcessHandler); + CHK(FPDFDoc_GetPageMode); + + // fpdf_flatten.h + CHK(FPDFPage_Flatten); + + // fpdf_fwlevent.h - no exports. + + // fpdf_formfill.h + CHK(FPDFDOC_InitFormFillEnvironment); + CHK(FPDFDOC_ExitFormFillEnvironment); + CHK(FORM_OnAfterLoadPage); + CHK(FORM_OnBeforeClosePage); + CHK(FORM_DoDocumentJSAction); + CHK(FORM_DoDocumentOpenAction); + CHK(FORM_DoDocumentAAction); + CHK(FORM_DoPageAAction); + CHK(FORM_OnMouseMove); + CHK(FORM_OnFocus); + CHK(FORM_OnLButtonDown); + CHK(FORM_OnLButtonUp); +#ifdef PDF_ENABLE_XFA + CHK(FORM_OnRButtonDown); + CHK(FORM_OnRButtonUp); +#endif + CHK(FORM_OnKeyDown); + CHK(FORM_OnKeyUp); + CHK(FORM_OnChar); + CHK(FORM_GetSelectedText); + CHK(FORM_ReplaceSelection); + CHK(FORM_ForceToKillFocus); + CHK(FPDFPage_HasFormFieldAtPoint); + CHK(FPDFPage_FormFieldZOrderAtPoint); + CHK(FPDF_SetFormFieldHighlightColor); + CHK(FPDF_SetFormFieldHighlightAlpha); + CHK(FPDF_RemoveFormFieldHighlight); + CHK(FPDF_FFLDraw); +#ifdef _SKIA_SUPPORT_ + CHK(FPDF_FFLRecord); +#endif + CHK(FPDF_GetFormType); +#ifdef PDF_ENABLE_XFA + CHK(FPDF_LoadXFA); + CHK(FPDF_Widget_Undo); + CHK(FPDF_Widget_Redo); + CHK(FPDF_Widget_SelectAll); + CHK(FPDF_Widget_Copy); + CHK(FPDF_Widget_Cut); + CHK(FPDF_Widget_Paste); + CHK(FPDF_Widget_ReplaceSpellCheckWord); + CHK(FPDF_Widget_GetSpellCheckWords); + CHK(FPDF_StringHandleCounts); + CHK(FPDF_StringHandleGetStringByIndex); + CHK(FPDF_StringHandleRelease); + CHK(FPDF_StringHandleAddString); +#endif + + // fpdf_ppo.h + CHK(FPDF_ImportPages); + CHK(FPDF_ImportNPagesToOne); + CHK(FPDF_CopyViewerPreferences); + + // fpdf_progressive.h + CHK(FPDF_RenderPageBitmap_Start); + CHK(FPDF_RenderPage_Continue); + CHK(FPDF_RenderPage_Close); + + // fpdf_save.h + CHK(FPDF_SaveAsCopy); + CHK(FPDF_SaveWithVersion); + + // fpdf_searchex.h + CHK(FPDFText_GetCharIndexFromTextIndex); + CHK(FPDFText_GetTextIndexFromCharIndex); + + // fpdf_structtree.h + CHK(FPDF_StructTree_GetForPage); + CHK(FPDF_StructTree_Close); + CHK(FPDF_StructTree_CountChildren); + CHK(FPDF_StructTree_GetChildAtIndex); + CHK(FPDF_StructElement_GetAltText); + CHK(FPDF_StructElement_GetMarkedContentID); + CHK(FPDF_StructElement_GetType); + CHK(FPDF_StructElement_GetTitle); + CHK(FPDF_StructElement_CountChildren); + CHK(FPDF_StructElement_GetChildAtIndex); + + // fpdf_sysfontinfo.h + CHK(FPDF_GetDefaultTTFMap); + CHK(FPDF_AddInstalledFont); + CHK(FPDF_SetSystemFontInfo); + CHK(FPDF_GetDefaultSystemFontInfo); + CHK(FPDF_FreeDefaultSystemFontInfo); + + // fpdf_text.h + CHK(FPDFText_LoadPage); + CHK(FPDFText_ClosePage); + CHK(FPDFText_CountChars); + CHK(FPDFText_GetUnicode); + CHK(FPDFText_GetFontSize); + CHK(FPDFText_GetCharBox); + CHK(FPDFText_GetCharOrigin); + CHK(FPDFText_GetCharIndexAtPos); + CHK(FPDFText_GetText); + CHK(FPDFText_CountRects); + CHK(FPDFText_GetRect); + CHK(FPDFText_GetBoundedText); + CHK(FPDFText_FindStart); + CHK(FPDFText_FindNext); + CHK(FPDFText_FindPrev); + CHK(FPDFText_GetSchResultIndex); + CHK(FPDFText_GetSchCount); + CHK(FPDFText_FindClose); + CHK(FPDFLink_LoadWebLinks); + CHK(FPDFLink_CountWebLinks); + CHK(FPDFLink_GetURL); + CHK(FPDFLink_CountRects); + CHK(FPDFLink_GetRect); + CHK(FPDFLink_CloseWebLinks); + + // fpdf_transformpage.h + CHK(FPDFPage_SetMediaBox); + CHK(FPDFPage_SetCropBox); + CHK(FPDFPage_GetMediaBox); + CHK(FPDFPage_GetCropBox); + CHK(FPDFPage_TransFormWithClip); + CHK(FPDFPageObj_TransformClipPath); + CHK(FPDF_CreateClipPath); + CHK(FPDF_DestroyClipPath); + CHK(FPDFPage_InsertClipPath); + + // fpdfview.h + CHK(FPDF_InitLibrary); + CHK(FPDF_InitLibraryWithConfig); + CHK(FPDF_DestroyLibrary); + CHK(FPDF_SetSandBoxPolicy); +#if defined(_WIN32) +#if defined(PDFIUM_PRINT_TEXT_WITH_GDI) + CHK(FPDF_SetTypefaceAccessibleFunc); + CHK(FPDF_SetPrintTextWithGDI); +#endif + CHK(FPDF_SetPrintPostscriptLevel); + CHK(FPDF_SetPrintMode); +#endif + CHK(FPDF_LoadDocument); + CHK(FPDF_LoadMemDocument); + CHK(FPDF_LoadCustomDocument); + CHK(FPDF_GetFileVersion); + CHK(FPDF_GetLastError); + CHK(FPDF_GetDocPermissions); + CHK(FPDF_GetSecurityHandlerRevision); + CHK(FPDF_GetPageCount); + CHK(FPDF_LoadPage); + CHK(FPDF_GetPageWidth); + CHK(FPDF_GetPageHeight); + CHK(FPDF_GetPageBoundingBox); + CHK(FPDF_GetPageSizeByIndex); +#ifdef _WIN32 + CHK(FPDF_RenderPage); +#endif + CHK(FPDF_RenderPageBitmap); + CHK(FPDF_RenderPageBitmapWithMatrix); +#ifdef _SKIA_SUPPORT_ + CHK(FPDF_RenderPageSkp); +#endif + CHK(FPDF_ClosePage); + CHK(FPDF_CloseDocument); + CHK(FPDF_DeviceToPage); + CHK(FPDF_PageToDevice); + CHK(FPDFBitmap_Create); + CHK(FPDFBitmap_CreateEx); + CHK(FPDFBitmap_GetFormat); + CHK(FPDFBitmap_FillRect); + CHK(FPDFBitmap_GetBuffer); + CHK(FPDFBitmap_GetWidth); + CHK(FPDFBitmap_GetHeight); + CHK(FPDFBitmap_GetStride); + CHK(FPDFBitmap_Destroy); + CHK(FPDF_VIEWERREF_GetPrintScaling); + CHK(FPDF_VIEWERREF_GetNumCopies); + CHK(FPDF_VIEWERREF_GetPrintPageRange); + CHK(FPDF_VIEWERREF_GetDuplex); + CHK(FPDF_VIEWERREF_GetName); + CHK(FPDF_CountNamedDests); + CHK(FPDF_GetNamedDestByName); + CHK(FPDF_GetNamedDest); +#ifdef PDF_ENABLE_XFA + CHK(FPDF_BStr_Init); + CHK(FPDF_BStr_Set); + CHK(FPDF_BStr_Clear); +#endif + + return 1; +} + +#undef CHK |