| //======================================================================== |
| // |
| // JSInfo.h |
| // |
| // This file is licensed under the GPLv2 or later |
| // |
| // Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com> |
| // Copyright (C) 2020, 2021 Albert Astals Cid <aacid@kde.org> |
| // Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by the LiMux project of the city of Munich |
| // Copyright (C) 2020 Oliver Sander <oliver.sander@tu-dresden.de> |
| // Copyright (C) 2020 Nelson Benítez León <nbenitezl@gmail.com> |
| // |
| // To see a description of the changes please see the Changelog file that |
| // came with your tarball or type make ChangeLog if you are building from git |
| // |
| //======================================================================== |
| |
| #ifndef JS_INFO_H |
| #define JS_INFO_H |
| |
| #include <cstdio> |
| #include "Object.h" |
| #include "PDFDoc.h" |
| #include "poppler_private_export.h" |
| #include "Link.h" |
| #include "UnicodeMap.h" |
| |
| class PDFDoc; |
| |
| class POPPLER_PRIVATE_EXPORT JSInfo |
| { |
| public: |
| // Constructor. |
| explicit JSInfo(PDFDoc *doc, int firstPage = 0); |
| |
| // Destructor. |
| ~JSInfo(); |
| |
| // scan for JS in the PDF |
| void scanJS(int nPages); |
| |
| // scan and print JS in the PDF |
| void scanJS(int nPages, FILE *fout, const UnicodeMap *uMap); |
| |
| // scan but exit after finding first JS in the PDF |
| void scanJS(int nPages, bool stopOnFirstJS); |
| |
| // return true if PDF contains JavaScript |
| bool containsJS(); |
| |
| private: |
| PDFDoc *doc; |
| int currentPage; |
| bool hasJS; |
| bool print; |
| FILE *file; |
| const UnicodeMap *uniMap; |
| bool onlyFirstJS; /* stop scanning after finding first JS */ |
| |
| void scan(int nPages); |
| void scanLinkAction(LinkAction *link, const char *action); |
| void printJS(const GooString *js); |
| }; |
| |
| #endif |