PoDoFo 1.0.0-dev
Loading...
Searching...
No Matches
PdfUtils.h
1
7#ifndef PDF_UTILS_H
8#define PDF_UTILS_H
9
11
12namespace PoDoFo
13{
14 inline bool IsCharWhitespace(char ch)
15 {
16 switch (ch)
17 {
18 case '\0': // NULL
19 return true;
20 case '\t': // TAB
21 return true;
22 case '\n': // Line Feed
23 return true;
24 case '\f': // Form Feed
25 return true;
26 case '\r': // Carriage Return
27 return true;
28 case ' ': // White space
29 return true;
30 default:
31 return false;
32 }
33 }
34
35 inline bool IsCharDelimiter(char ch)
36 {
37 switch (ch)
38 {
39 case '(':
40 return true;
41 case ')':
42 return true;
43 case '<':
44 return true;
45 case '>':
46 return true;
47 case '[':
48 return true;
49 case ']':
50 return true;
51 case '{':
52 return true;
53 case '}':
54 return true;
55 case '/':
56 return true;
57 case '%':
58 return true;
59 default:
60 return false;
61 }
62 }
63
64 inline bool IsCharTokenDelimiter(char ch, PdfTokenType& tokenType)
65 {
66 switch (ch)
67 {
68 case '(':
69 tokenType = PdfTokenType::ParenthesisLeft;
70 return true;
71 case ')':
72 tokenType = PdfTokenType::ParenthesisRight;
73 return true;
74 case '[':
75 tokenType = PdfTokenType::SquareBracketLeft;
76 return true;
77 case ']':
78 tokenType = PdfTokenType::SquareBracketRight;
79 return true;
80 case '{':
81 tokenType = PdfTokenType::BraceLeft;
82 return true;
83 case '}':
84 tokenType = PdfTokenType::BraceRight;
85 return true;
86 case '/':
87 tokenType = PdfTokenType::Slash;
88 return true;
89 default:
90 tokenType = PdfTokenType::Unknown;
91 return false;
92 }
93 }
94
97 inline bool IsCharRegular(char ch)
98 {
99 return !(IsCharWhitespace(ch) || IsCharDelimiter(ch));
100 }
101
105 inline bool IsCharASCIIPrintable(char ch)
106 {
107 return ch > 32 && ch < 127;
108 }
109}
110
111#endif // PDF_UTILS_H
SPDX-FileCopyrightText: (C) 2005 Dominik Seichter domseichter@web.de SPDX-FileCopyrightText: (C) 2020...
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:38
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
bool IsCharASCIIPrintable(char ch)
Check if the character is within the range of non control code ASCII characters.
Definition PdfUtils.h:105
bool IsCharRegular(char ch)
Checks if a character is neither whitespace or delimiter.
Definition PdfUtils.h:97