i have a PDF and i want to get the Text of this PDF with PDFBox 2.x an i want to keep all Whitespaces on the beginning from the Line!
Here the PDF Examples:
First Example with seven Whitespace on the Line-Beginning
when i mark the Text in the PDF and copy it to a Editor i get this:
> Erster Testuebertrag auf die Neuentwicklung fuer die PSA Direktbank ma
> l mit sehr langen Verwendungszweck gleich zum testen wann dieser cuted
EDIT: here is the Stream-Dump from this Sectionimage:
BT
/F19 8.9664 Tf 96.197 606.119 Td [(Kommunikation)]TJ
ET
q
1 0 0 1 85.238 594.35 cm
[]0 d 0 J 0.398 w 0 0 m 0 7.352 l S
Q
BT
/F19 8.9664 Tf 133.856 595.758 Td [(Erster)-600(Testuebertrag)-600(auf)-600(die)-600(Neuentwicklung)-600(fuer)-600(die)-600(PSA)-600(Direktbank)-600(ma)]TJ
ET
q
1 0 0 1 85.238 583.989 cm
[]0 d 0 J 0.398 w 0 0 m 0 7.352 l S
Q
BT
/F19 8.9664 Tf 133.856 585.397 Td [(l)-600(mit)-600(sehr)-600(langen)-600(Verwendungszweck)-600(gleich)-600(zum)-600(testen)-600(wann)-600(dieser)-600(cuted)]TJ
ET
Second Example with five Whitespaces in second Line
when i mark the Text in the PDF and copy it to a Editor i get this:
> Rueckzahlung mal mit Umlauten obwohl das ganze ja gar nicht mehr gehen
> duerte, aber hier haben wir jetzt sogar die zweite Zeile erreicht
EDIT: this is the Stream-Dump of the Sectionimage #2:
BT
/F19 8.9664 Tf 96.197 267.821 Td [(Kommunikation)-8400(:)]TJ
ET
q
1 0 0 1 85.238 256.052 cm
[]0 d 0 J 0.398 w 0 0 m 0 7.352 l S
Q
BT
/F19 8.9664 Tf 117.716 257.46 Td [(Rueckzahlung)-600(mal)-600(mit)-600(Umlauten)-600(obwohl)-600(das)-600(ganze)-600(ja)-600(gar)-600(nicht)-600(mehr)-600(gehen)]TJ
ET
q
1 0 0 1 85.238 245.691 cm
[]0 d 0 J 0.398 w 0 0 m 0 7.352 l S
Q
BT
/F19 8.9664 Tf 123.096 247.099 Td [(duerte,)-600(aber)-600(hier)-600(haben)-600(wir)-600(jetzt)-600(sogar)-600(die)-600(zweite)-600(Zeile)-600(erreicht)]TJ
ET
So, when i extract the Text with
PDFText2HTML Stripper = new PDFText2HTML();
or
PDFTextStripper Stripper = new PDFTextStripper();
the i get every Time the Text without leading Whitespaces on the Line-Beginning but i need it ;)
Example:
> Erster Testuebertrag auf die Neuentwicklung fuer die PSA Direktbank ma
> l mit sehr langen Verwendungszweck gleich zum testen wann dieser cuted
>
> Rueckzahlung mal mit Umlauten obwohl das ganze ja gar nicht mehr gehen
> duerte, aber hier haben wir jetzt sogar die zweite Zeile erreicht
Is there every Solution to keep the Whitespaces with PDFBox 2.x?
Greats
Related
I would like to "overlay" a text onto an existing PDF document, by appending something at the end of the PDF file (after %%EOF). It is very important that nothing before the %%EOF is modified.
Is it even possible to do this ?
How can I "generate" what to append after %%EOF to do this, for a given text ? The technology doesn't really matter, once I have my "blob" I will just append it myself.
Thanks a lot!
How can I "generate" what to append after %%EOF to do this, for a given text ? The technology doesn't really matter, once I have my "blob" I will just append it myself.
That "blob" to append depends on the PDF to append it to. Essentially you'll have to parse the original PDF and find the page object for the page to overlay. Then you can append a new annotation or content stream with the overlay text, a copy of the page object with a reference to that new annotation or content stream, and a new cross reference section. In general you do that using a PDF library for your preferred programming language.
In a comment to your question you asked for example code to run and see the before/after and reverse-engineer it.
In the following example I use Java and the iText 7 PDF library (current development head but any 7.1.x version should do):
try ( PdfReader pdfReader = new PdfReader(SOURCE_PDF);
PdfWriter pdfWriter = new PdfWriter(TARGET_PDF);
PdfDocument pdfDocument = new PdfDocument(pdfReader, pdfWriter, new StampingProperties().useAppendMode());
Document document = new Document(pdfDocument)
) {
pdfWriter.setCompressionLevel(0);
Paragraph paragraph = new Paragraph("Hello! This text is added for Fratt");
paragraph
.setWidth(100)
.setBorder(new SolidBorder(new DeviceRgb(0f, 0f, 0.6f), 3))
.setRotationAngle(Math.PI / 4);
Rectangle box = pdfDocument.getFirstPage().getCropBox();
document.showTextAligned(paragraph,
(box.getLeft() + box.getRight()) / 2,
(box.getTop() + box.getBottom()) / 2,
1,
TextAlignment.CENTER,
VerticalAlignment.MIDDLE,
0);
}
(ShowTextAtPosition test testAddCenteredBorderedParagraph)
This adds the following rotated framed text to the first page of the source document:
In case of my example document the following "blob" is added after the original %%EOF:
16 0 obj
<</CreationDate(D:20060808104513+02'00')/Creator(TeX)/ModDate(D:20201221183247+01'00')/PTEX.Fullbanner(This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)/Producer(pdfeTeX-1.21a; modified using iText® 7.1.14-SNAPSHOT ©2000-2020 iText Group NV \(AGPL-version\))>>
endobj
19 0 obj
<</BaseFont/Helvetica/Encoding/WinAnsiEncoding/Subtype/Type1/Type/Font>>
endobj
1 0 obj
<</Font<</F1 19 0 R/F73 6 0 R/F8 9 0 R>>/ProcSet[/PDF /Text]>>
endobj
2 0 obj
<</Contents[18 0 R 3 0 R 17 0 R]/MediaBox[0 0 595.2756 841.8898]/Parent 10 0 R/Resources 1 0 R/Type/Page>>
endobj
17 0 obj
<</Length 568>>stream
Q
q
0.70711 0.70711 -0.70711 0.70711 358.89 -66.87 cm
q
0 0 0.6 rg
251.62 401.57 m
351.62 401.57 l
354.62 404.57 l
248.62 404.57 l
251.62 401.57 l
f
Q
q
0 0 0.6 rg
351.62 401.57 m
351.62 374.93 l
354.62 371.93 l
354.62 404.57 l
351.62 401.57 l
f
Q
q
0 0 0.6 rg
351.62 374.93 m
251.62 374.93 l
248.62 371.93 l
354.62 371.93 l
351.62 374.93 l
f
Q
q
0 0 0.6 rg
251.62 374.93 m
251.62 401.57 l
248.62 404.57 l
248.62 371.93 l
251.62 374.93 l
f
Q
q
BT
/F1 12 Tf
255.94 391.23 Td
(Hello! This text is)Tj
( )Tj
ET
Q
q
BT
/F1 12 Tf
262.27 377.91 Td
(added for Fratt)Tj
ET
Q
Q
endstream
endobj
18 0 obj
<</Length 2>>stream
q
endstream
endobj
xref
1 2
0000009898 00000 n
0000009976 00000 n
16 4
0000009500 00000 n
0000010098 00000 n
0000010715 00000 n
0000009809 00000 n
trailer
<</ID [<98bc0d0e9347d0a066ab140ebd9ce62c><fa0dda3a13b826a6ecbd129bb048a3d0>]/Info 16 0 R/Prev 9003/Root 15 0 R/Size 20>>
%iText-7.1.14-SNAPSHOT
startxref
10764
%%EOF
Because of the pdfWriter.setCompressionLevel(0) in the code, the content stream is not compressed and you can read and understand it easily.
I am a rookie and learning myself so i dont know where to ask so i wanted to try my luck here
The Equation is p=m/V
while True:
Auswahl = input("Für das beenden des Skripts geben sie Ende ein.\nWas möchten sie berechnen: Dichte, Masse, Volumen: ")
if Auswahl == "Dichte":
print("Geben sie zuerst das Volumen und dann die Masse an")
Volumen = float(input("Volumen: "))
Masse = float(input("Masse: "))
Dichte = Masse/Volumen
print(f"Die Dichte beträgt {Dichte} Einheiten")
elif Auswahl == "Masse":
print("Geben sie zuerst die Dichte und dann das Volumen an")
Dichte = float(input("Dichte: "))
Volumen = float(input("Volumen: "))
Masse = Dichte * Volumen
print(f"Die Masse beträgt {Masse} Einheiten")
elif Auswahl == "Volumen":
print("Geben sie zuerst die Masse und dann die Dichte an")
Masse = float(input("Masse: "))
Dichte = float(input("Dichte: "))
Volumen = Masse / Dichte
print(f"Das Volumen beträgt {Volumen} Einheiten")
elif Auswahl == "Ende":
print(style.RED + "Danke")
quit()
So far its pretty simple since its only 2 variables at a time.
But for this problem:
for average Density
I need multiple variables that differ from task to task, so in some cases i have 5 masses and volumes, sometimes 15 masses and volumes
now to my question how can i tell python to only ask me 15 times and then define 15 variables that i can use for calculating later on
For example = 8 Masses and 8 Volumes
So python should ask me about the 8 different masses and put them into variables and the same goes for volumes
i was thinking about implementing a while loop but quickly found out that i have to define variables by hand which sucks i would like python to do it automatically
i am also open for any improvments
Thank you in advance
i think i solved the problem but i am afraid its not the most efficent way;
gesamt = float(input("Geben Sie die Anzahl der im Körper enthaltenen Stoffe an: "))
b = 1
while b <= gesamt:
b += 1
m_list = []
for i in range(b-1):
m_list.append(float(input("Masse eingeben: ")))
mtotal = 0
for m in m_list:
mtotal = mtotal + m
print(mtotal)
v_list = []
for j in range(b-1):
v_list.append(float(input("Volumen eingeben: ")))
vtotal = 0
for v in v_list:
vtotal = vtotal + v
print(vtotal)
durchschnittliche_Dichte = mtotal/vtotal
print(durchschnittliche_Dichte)
I am studying Marked content in PDF.
I came across one PDF file which has Marked content but few object from marked content are hidden.
So here one block of BDC-EMC has both visible and hidden objects. I don't see OCGs array in document.
How does this works, how to know which object (graphics/text) is visible and which one is hidden?
I do not see option to attach pdf file here so sharing content stream. Here only one BT-ET block enter code herein "/PlacedPDF /MC0 BDC " is visible all other are hidden.
Any help is highly appreciated.enter code here
Thanks!!,
Chetan
PDF Content Stream
/Span <</Lang (en)/MCID 1597 >>BDC
/Span <</ActualText (þÿ )>>BDC
EMC
EMC
/Span <</Lang (en)/MCID 1598 >>BDC
EMC
/Span <</Lang (en)/MCID 1599 >>BDC
/Span <</ActualText (þÿ )>>BDC
EMC
EMC
q
/Perceptual ri
/GS0 gs
/T1_1 1 Tf
/Fm0 Do
Q
/Figure <</MCID 1602 >>BDC
/PlacedPDF /MC0 BDC
<------------------------------- START -------------------------------->
BT
0 0 0 1 k
/Perceptual ri
/GS0 gs
/T1_0 1 Tf
6.7092 0 0 6.7092 91.8006 408.647 Tm
[(St)-20(andard)]TJ
ET
<------------------------------- END -------------------------------->
q
67.107 261.154 77 188.188 re
W n
BT
-0.12 Tw 6.7092 0 0 6.7092 332.5724 347.7748 Tm
[(Mec)50(hanical T)115(ee)]TJ
0 Tw 17.697 9.073 Td
[(A)40(WW)40(A Ductile Iron Pipe)]TJ
-34.941 -1.057 Td
[(R)20(educing)]TJ
-1.399 -20.545 Td
(Outlet Coupling)Tj
ET
Q
q
67.107 261.154 77 188.188 re
W n
BT
6.7092 0 0 6.7092 339.3285 306.0237 Tm
[(Saddle-L)20(et)]TJ
-18.251 6.751 Td
[(R)20(educing)]TJ
-4.096 -1.2 Td
(\(2" x 1\275", 2\275" x 2", 3" x 2\275"\))Tj
-0.025 Tw 20.744 8.715 Td
[(Flange A)20(dapter)]TJ
0 Tw 2.279 -20.578 Td
[(W)-20(ildcat)]TJ
19.004 0 Td
(HDPE Pipe)Tj
ET
Q
q
67.107 261.154 77 188.188 re
W n
BT
-0.025 Tw 6.7092 0 0 6.7092 467.048 359.0001 Tm
[(IPS )-25(to A)40(WW)40(A)]TJ
ET
EMC
EMC
/Figure <</MCID 1603 >>BDC
/PlacedPDF /MC1 BDC
Q
q
170.527 255.484 83.892 188.189 re
W n
BT
6.7092 0 0 6.7092 73.8793 402.9777 Tm
[(St)-20(andard)]TJ
0.205 -7.706 Td
(GapSeal)Tj
-0.12 Tw 35.682 -1.367 Td
[(Mec)50(hanical T)115(ee)]TJ
0 Tw 17.697 9.073 Td
[(A)40(WW)40(A Ductile Iron Pipe)]TJ
ET
Q
q
170.527 255.484 83.892 188.189 re
W n
BT
6.7092 0 0 6.7092 65.2513 303.5076 Tm
[(End P)20(rotection)]TJ
38.18 -0.47 Td
[(Saddle-L)20(et)]TJ
ET
Q
q
170.527 255.484 83.892 188.189 re
W n
BT
-0.025 Tw 6.7092 0 0 6.7092 310.6531 396.0676 Tm
[(Flange A)20(dapter)]TJ
0 Tw 2.279 -20.578 Td
(W)Tj
6.7092 0 0 6.7092 171.4775 337.5969 Tm
24.043 -11.863 Td
(ildcat)Tj
17.984 0 Td
(HDPE Pipe)Tj
-56.203 -0.017 Td
[(F)20(astFit)]TJ
4.1287 0 0 4.1287 96.3529 259.9574 Tm
(\256)Tj
-0.025 Tw 6.7092 0 0 6.7092 449.1268 353.3308 Tm
[(IPS )-25(to A)40(WW)40(A)]TJ
ET
EMC
EMC
/Figure <</MCID 1604 >>BDC
/PlacedPDF /MC2 BDC
Q
q
62.748 59.87 83.953 188.188 re
W n
BT
6.7092 0 0 6.7092 -157.3332 207.3635 Tm
[(St)-20(andard)]TJ
0.205 -7.706 Td
(GapSeal)Tj
ET
Q
q
62.748 59.87 83.953 188.188 re
W n
BT
6.7092 0 0 6.7092 202.1706 207.3635 Tm
[(A)40(WW)40(A Ductile Iron Pipe)]TJ
-34.941 -1.057 Td
[(R)20(educing)]TJ
-1.399 -20.545 Td
(Outlet Coupling)Tj
-18.53 6.776 Td
[(End P)20(rotection)]TJ
ET
Q
q
62.748 59.87 83.953 188.188 re
W n
BT
6.7092 0 0 6.7092 -32.2543 150.0337 Tm
[(R)20(educing)]TJ
-4.096 -1.2 Td
(\(2" x 1\275", 2\275" x 2", 3" x 2\275"\))Tj
ET
Q
q
62.748 59.87 83.953 188.188 re
W n
BT
6.7092 0 0 6.7092 222.231 62.3919 Tm
(HDPE Pipe)Tj
-56.203 -0.017 Td
[(F)20(astFit)]TJ
4.1287 0 0 4.1287 -134.8597 64.3432 Tm
(\256)Tj
-0.025 Tw 6.7092 0 0 6.7092 217.9142 157.7166 Tm
[(IPS )-25(to A)40(WW)40(A)]TJ
ET
EMC
EMC
/Figure <</MCID 1605 >>BDC
/PlacedPDF /MC3 BDC
Q
q
169.441 59.898 85.291 183.362 re
W n
BT
6.7092 0 0 6.7092 -181.845 207.3911 Tm
[(St)-20(andard)]TJ
0.205 -7.706 Td
(GapSeal)Tj
-0.12 Tw 35.682 -1.367 Td
[(Mec)50(hanical T)115(ee)]TJ
ET
Q
q
169.441 59.898 85.291 183.362 re
W n
BT
6.7092 0 0 6.7092 -56.7661 200.2995 Tm
[(R)20(educing)]TJ
-1.399 -20.545 Td
(Outlet Coupling)Tj
-18.53 6.776 Td
[(End P)20(rotection)]TJ
38.18 -0.47 Td
[(Saddle-L)20(et)]TJ
-18.251 6.751 Td
[(R)20(educing)]TJ
-4.096 -1.2 Td
(\(2" x 1\275", 2\275" x 2", 3" x 2\275"\))Tj
-0.025 Tw 20.744 8.715 Td
[(Flange A)20(dapter)]TJ
0 Tw 2.279 -20.578 Td
[(W)-20(ildcat)]TJ
ET
Q
q
169.441 59.898 85.291 183.362 re
W n
BT
6.7092 0 0 6.7092 -179.356 62.3054 Tm
[(F)20(astFit)]TJ
4.1287 0 0 4.1287 -159.3715 64.3708 Tm
(\256)Tj
ET
EMC
EMC
Q
The text objects (except the first one drawing "Standard") are prepended by a clip path definition their respective text is drawn outside of. Thus, those text pieces are not visible.
For example:
q
67.107 261.154 77 188.188 re
W n
BT
-0.12 Tw 6.7092 0 0 6.7092 332.5724 347.7748 Tm
[(Mec)50(hanical T)115(ee)]TJ
0 Tw 17.697 9.073 Td
[(A)40(WW)40(A Ductile Iron Pipe)]TJ
-34.941 -1.057 Td
[(R)20(educing)]TJ
-1.399 -20.545 Td
(Outlet Coupling)Tj
ET
Q
At the beginning of this block the current clip path is reduced to a rectangle with its lower left corner at (67.107, 261.154) and a size of 77×188.188. The text pieces thereafter are drawn rightwards with approximate baseline starts at
(333, 348)
(350, 357)
(315, 356)
(314, 335)
These baseline starts clearly are right of that clip path rectangle, so the text pieces drawn rightwards also are. Thus, they are hidden.
We often see people ask questions about why their string doesn't match their regexp and sometimes the answer comes down to them expecting a character to be part of a character class when it isn't or them trying to use a shorthand for a character class (e.g. \d for [[:digit:]]) that exists in some other tool but simply isn't part of the awk language. So with that in mind I'm creating a canonical answer to the question of which characters exist in which character classes in awk.
The following script will generate the set of chars in each character class (plus the \s, \S, \w, and \W extensions if your awk supports them) for your locale for the chars in the numeric range 0-127 as listed in the first table at http://www.asciitable.com/ and https://en.wikipedia.org/wiki/ASCII. For a horizontal tab character as output by print "\t" the first reference uses TAB and the other HT as the abbreviation - I prefer TAB so I used it below. They both use Space to represent the char output by print " " so I also did that below even though I more commonly refer to it as a "blank char":
$ cat prtCharClasses.awk
# From the gawk manual, https://www.gnu.org/software/gawk/manual/gawk.html#Bracket-Expressions:
# [:alnum:] Alphanumeric characters
# [:alpha:] Alphabetic characters
# [:blank:] Space and TAB characters
# [:cntrl:] Control characters
# [:digit:] Numeric characters
# [:graph:] Characters that are both printable and visible (a space is printable but not visible, whereas an ‘a’ is both)
# [:lower:] Lowercase alphabetic characters
# [:print:] Printable characters (characters that are not control characters)
# [:punct:] Punctuation characters (characters that are not letters, digits, control characters, or space characters)
# [:space:] Space characters (these are: space, TAB, newline, carriage return, formfeed and vertical tab)
# [:upper:] Uppercase alphabetic characters
# [:xdigit:] Characters that are hexadecimal digits
# \s Matches any whitespace character. Think of it as shorthand for ‘[[:space:]]’.
# \S Matches any character that is not whitespace. Think of it as shorthand for ‘[^[:space:]]’.
# \w Matches any word-constituent character—that is, it matches any letter, digit, or underscore. Think of it as shorthand for ‘[[:alnum:]_]’.
# \W Matches any character that is not word-constituent. Think of it as shorthand for ‘[^[:alnum:]_]’.
BEGIN {
asciiMax = (asciiMax == "" ? 127 : asciiMax)
numClasses = split("\
[[:alpha:]] \
[[:digit:]] \
[[:alnum:]] \
[[:lower:]] \
[[:upper:]] \
[[:xdigit:]] \
[[:punct:]] \
[[:cntrl:]] \
[[:graph:]] \
[[:print:]] \
[[:blank:]] \
[[:space:]] \
\\s \
\\S \
\\w \
\\W \
", classes)
# Map the control chars and white space in the 0-127 range to
# their abbreviations to make them visible in the output:
split("NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Space", map)
map[128] = "DEL"
for (asciiNr=0; asciiNr<=asciiMax; asciiNr++) {
char = sprintf("%c", asciiNr)
chars[++numChars] = char
}
for (classNr in classes) {
class = classes[classNr]
for (charNr in chars) {
char = chars[charNr]
if ( char ~ class ) {
classChars[classNr,charNr]
}
}
}
for (classNr=1; classNr<=numClasses; classNr++) {
class = classes[classNr]
printf "%-12s =", class
for (charNr=1; charNr<=numChars; charNr++) {
if ( (classNr,charNr) in classChars ) {
char = chars[charNr]
printf " %s", (charNr in map ? map[charNr] : char)
}
}
print ""
}
}
Here is it's output for chars 0-127 in the C locale, if you have a different locale then the output will be different so run the above script to see what it is in your locale:
$ awk -f prtCharClasses.awk file
[[:alpha:]] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
[[:digit:]] = 0 1 2 3 4 5 6 7 8 9
[[:alnum:]] = 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
[[:lower:]] = a b c d e f g h i j k l m n o p q r s t u v w x y z
[[:upper:]] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
[[:xdigit:]] = 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
[[:punct:]] = ! " # $ % & ' ( ) * + , - . / : ; < = > ? # [ \ ] ^ _ ` { | } ~
[[:cntrl:]] = NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL
[[:graph:]] = ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
[[:print:]] = Space ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
[[:blank:]] = TAB Space
[[:space:]] = TAB LF VT FF CR Space
\s = TAB LF VT FF CR Space
\S = NUL SOH STX ETX EOT ENQ ACK BEL BS SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL
\w = 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
\W = NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Space ! " # $ % & ' ( ) * + , - . / : ; < = > ? # [ \ ] ^ ` { | } ~ DEL
Note that \s, \S, \w, and \W are extensions only available in some tools, e.g. GNU awk. \d and \D are not present above - those are extensions available in some tools that support PCREs as shorthand for [:digit:] but that does not include any variant of awk. If you want a shorthand for [:digit:] then [0-9] appears to be portable across locales but I stand to be corrected.
If you need to see the chars past number 127, then you can set asciiMax on the command line, e.g.:
$ awk -v asciiMax=255 -f prtCharClasses.awk
[[:alpha:]] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ª µ º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
[[:digit:]] = 0 1 2 3 4 5 6 7 8 9
[[:alnum:]] = 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ª µ º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
[[:lower:]] = a b c d e f g h i j k l m n o p q r s t u v w x y z µ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
[[:upper:]] = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ
[[:xdigit:]] = 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
[[:punct:]] = ! " # $ % & ' ( ) * + , - . / : ; < = > ? # [ \ ] ^ _ ` { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © « ¬ ® ¯ ° ± ² ³ ´ ¶ · ¸ ¹ » ¼ ½ ¾ ¿ × ÷
[[:cntrl:]] = NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL
[[:graph:]] = ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
[[:print:]] = Space ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
[[:blank:]] = TAB Space
[[:space:]] = TAB LF VT FF CR Space
\s = TAB LF VT FF CR Space
\S = NUL SOH STX ETX EOT ENQ ACK BEL BS SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
\w = 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z ª µ º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
\W = NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Space ! " # $ % & ' ( ) * + , - . / : ; < = > ? # [ \ ] ^ ` { | } ~ DEL ¡ ¢ £ ¤ ¥ ¦ § ¨ © « ¬ ® ¯ ° ± ² ³ ´ ¶ · ¸ ¹ » ¼ ½ ¾ ¿ × ÷
I have downloading PDF's and PDF downloading with the opening of a new tab using _blank in the link
both download fine
However
I am trying to get "Attachment"=>0) so that is opens in the tab
this now leads to a page of text that has not rendered as a PDF
Using SLIM and TWIG I have the following
$html = $twig->render('reportPdfView.html', array(
'pageTitle' => 'Report Detail',
'report' => $reportShowResult,
'users' => $userList
));
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf",array("Attachment"=>0));
in response to question what do I see -
%PDF-1.3 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 13 0 R 17 0 R 21 0 R 23 0 R ] /Count 5 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R /F3 10 0 R >> /XObject << /I1 11 0 R /I2 12 0 R /I3 15 0 R /I4 16 0 R /I5 19 0 R /I6 20 0 R >> >> /MediaBox [0.000 0.000 612.000 792.000] >> endobj 4 0 obj [/PDF /Text /ImageC ] endobj 5 0 obj << /Creator (DOMPDF) /CreationDate (D:20140208210105+00'00') /ModDate (D:20140208210105+00'00') /Title (Trainers Report) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Length 1534 >> stream 1.000 1.000 1.000 rg 34.016 34.016 543.969 723.969 re f 0.200 0.200 0.200 rg BT 34.766 713.165 Td /F1 28.5 Tf [(Attendance List)] TJ ET q 180.000 0 0 61.500 397.234 695.734 cm /I2 Do Q BT 34.016 682.774 Td /F1 10.5 Tf [(ID: 26 - )] TJ ET BT 71.364 682.774 Td /F2 10.5 Tf [(Sun 29th September 2013)] TJ ET BT 193.941 682.774 Td /F1 10.5 Tf [( - Trainer: des cooke )] TJ ET 0.957 0.957 0.957 rg 34.016 652.459 222.028 27.263 re f 0.200 0.200 0.200 rg BT 40.016 661.512 Td /F3 10.5 Tf [(Name)] TJ ET 0.957 0.957 0.957 rg 256.044 652.459 166.521 27.263 re f 0.200 0.200 0.200 rg BT 262.044 661.512 Td /F3 10.5 Tf [(House)] TJ ET 0.957 0.957 0.957 rg 422.565 652.459 38.855 27.263 re f 0.200 0.200 0.200 rg BT 428.565 661.512 Td /F3 10.5 Tf [(Day1)] TJ ET 0.957 0.957 0.957 rg 461.420 652.459 38.855 27.263 re f 0.200 0.200 0.200 rg BT 467.420 661.512 Td /F3 10.5 Tf [(Day2)] TJ ET 0.957 0.957 0.957 rg 500.274 652.459 38.855 27.263 re f 0.200 0.200 0.200 rg BT 506.274 661.512 Td /F3 10.5 Tf [(Day3)] TJ ET 0.957 0.957 0.957 rg 539.129 652.459 38.855 27.263 re f 0.200 0.200 0.200 rg BT 545.129 661.512 Td /F3 10.5 Tf [(Cert)] TJ ET BT 34.016 625.249 Td /F1 10.5 Tf [(Key:)] TJ ET 0.933 0.933 0.933 rg 0.933 0.933 0.933 RG 34.016 607.197 m 577.984 607.197 l 577.984 606.447 l 34.016 606.447 l f 0.200 0.200 0.200 rg BT 34.016 579.237 Td /F1 10.5 Tf [(Days Y -Attended, N -Absent, am -attended am, pm -attended pm )] TJ ET BT 34.016 563.974 Td /F1 10.5 Tf [(Certtificates C -completed, A -attended, N -no certificate)] TJ ET endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 11 0 obj << /Type /XObject /Subtype /Image /Width 240 /Height 82 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 240 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 5494>> stream xœí\dríÿŸãH’$I’$I’$É$I’ÌL&3If&33“ÉÌd233™™™I2333“™ÉÌÌ$3ÉL2I’Iff’$ù\çW?Î9ÝÏžÏó}¾÷ãyýqßw缯¯ëÇû×u{hè_ü‹ñ/þ#·|•É—+ŸïÅìÝ’ðïîÍ_ŒñÈk»¥mÖßÝ©¿ "ï}›Á¿»gئz¶ª|èïîßÿŒÓÁl´xðßÝÅÿ%ÅÖ¯ùþ³ksÄÁÕü×/kÅ_Û†èú'tl¬Á=`ø×ExÀ$PKÀL¨ŠÉ€ÕÕ©å×£õú/¸;Žs?¤Ûn?°™´hBSv¥˜Ãb!¥mŸÇãD"1<³[‚i¾B·NrIÍã°™”ª˜Ó7ëÑi”2>‹*ÐC(U*å¤;07Ídž‘_ì'Õlþb3«8ôÛø}{,òØL]7m™ ŸCÐõ<¯;%N?#æy_Ém±€CÛÔ,¿ÅD, ;a§„ù H=øúúú®ÕH‡E´‹ráï?WD"P+E² |0¬’p1yÒBûrÊìžáM‘JFŒj¢d?¦?q‰‚Q'²á5ügÖ~rÉ|«•÷÷Jõã»Ö¤ë_JÆ¥›bXÞ‘¨.KÁ:%w¢®Ý¾ð8´"”yäÛ‹f¥E´¦ù"¿¾šÑ‰Ù”ÞÈÞ:×3ã&9ÅÇ'oüT¬’jù,åÒO©§L¶ðþY£é_Y#¤ÛÅ° G&mWˆ¸ÌþžÀ” ‘ÍØ<ÉÞ$–=&—•·PK>mÎÚ•<©'‰‹E§VÈæ×±ŸÑÍ…±%R%õüÓÍY,;ß=¿½SµÝþ6I©ƒ øpû¤–u2>»oÿAð=áÜÑê„VƒÜÒõTÍÇ–Š”¦dá$4©–ÒY¯ÄÃéºÇ âð±™k$ŽBäõÜÊ=œî¬.Î/Ö÷NéÂg›ŒúˆŠ2¨N¿Ø¹E-êÓ(|N©EéjkÊV äÃ4k5d ¶²Ç«ã¶žª4%ßov¦‡Eý땼¢lF¸–¾Ü"ï«êÃqhÆi5[®™•½‹Ç,eã}MPåÃ&ɽÙtnOg 'ܨ}||T>¿Áïòuí6t„½ÿ®‚€4*ÈÜF–ÑEêˆtêý®”K…|’ÊížÏØGzëïDánwÚ dq1Âõ—8%.Jž®y,j™D*טœ³GwE²D‰2¨ô„Ûï£Ã2^W²Cøû£üö’~Æ~m.6½ÈÃxg¾*o©Äe<¸:Z÷%èþa&£V)^Ÿnoo“Ÿíb}6:ÂÅ)K‡ñ ±½·QÊ “xv·=ã0†‡Q§)K¨èjùåfÙm7ê´z£mÌårè¥=Ž>·B¶DÞv÷¦ÆúóÖn K¨$’û$=A"ܨ^òé°ûØ \;Ùõi% sðgƒY›F.y,Ô²A&üEåí.²ä–‹H¦ÒêԲĥò…×{œZ>ÑK¸Q 4Ÿöôî ˜+³øûJ7Û½àW„‹Ï7g]‹{á1J1ïoáz|ó`Ž¾ótk\/pYL<¸Á…zéù4èÒK¸,ƒÁdsB Ó1öF¼ì{áõî螎pýÚüˆºÇÈB,‘>Ô?™ó SE— ׳‰Èfh§³¬7'btÍ ÜHÌ[eˆhm·óøpD+æv"‡(öð#·ë3K1ó´ƒÙšU0¡¯Bîáh휎p£Bm?¨èÙS Jö¾mîæ-´žA¸–>ߘõL/>ڧߩAµB‡p³ ñ'ŽÒõî¬YÊF|u·µK»VÜq\ðÌÓûëeh\ÝÕR}i‚y¼`1Ÿ: y#´„ËTÂï¢~Â#}³Q~>¿ƒÎ—î~:Œ›ÍΘ·+‘>v³Ï©ä#‚‡û«ØšÛ€`0Gfíšý;‡NBlœp9}¼d—ч§„Æ{/¤ã[ÓÖ0-aŠSŒlÏôA,NŸ^k5*[f m´Ô!œŠ-ÚÔ ƒJZÛSfD„[ÕÂÓÍiìÅÁ~xut|5£Ým–vê‰à·¥T„Þ ðà³wvõ:=aº€m¿»‡aÖ.#DC×`—ptÞ,ˆT¶=\þmuBu‡p)ß.ÎÍø|3^—UC„x0[lp•: e]TáA>_åÇ›ŠâeÊ…ÔÉê¸V¤%\¦ †€j52¦éÞkÍÿ5a“„謄Y´Ë‘Žã„ßî—&íf#ŠaƒF!⦚Á•™=ÝE•s #Œ!xïÙ`ÂfL¢U|ž¹QÊ[¥%\¢ÙÄ &¬–5ú×_³,¡zNocÌN8{³å5)%"B>·›˜<àÝÝušIŽ£ŒVìgãñ`–Ö J`ïùd,0¢ä±Wh óõ„j¥—øÁÓ#¾íöý9¡ÑO‚Ù"mŽùÈã„U«°™8pOØ1ù ³§ëâ_L$&Sƒÿ|ŠÒ»yCx0Þ*½^oy "6s™žðÚúžIŒû £Ž“ĈëˆûM7²‹qÂ/Á1%²R!ˆš€Œåfw7rÞréÅl‘MÉ/Ùdl¯g {ÿ]H-9\ƒžpá5K ðŠ«þ ˜LlHžâ{Vˆ, k—ð¨b#ê]Õr“ûhåË?¦r8iìWå+š¢¸Å+çá©a#ø-Îu=ý?o‡LqÅq_±~¾æþÂùO#Œ¥ÃÛD+÷ó6…€7‰ÿJl¹u|šô6oÍbúl8‚L˜A»‡ë¹ÔÃsñ¿g,ïËàPGB‚o™Û)ƒˆù£Fs¥†qbÿ7·¦Œ2¡ß¹Ã9³„º¦ùxÛ…dtÁ¦à±˜lZ-]}¸¾Í”)1âOëMÅÒ†˜B\yf¢ˆCú³F“D?†gÒÛ÷+NDLDî«cxÒ§·îu4kÅ—äíÍõõuŽ–ðKâô4ñRþ”soÕ¾B îóÊ(„A´El¥³•÷§„cŽDOµæžÏ¢”â;°²”T4i‰p&~¸½N?¾ëÍf‹Jíë9h_!gð»=ìÏx<Ÿ†|ÓÑøc&W¤œ2|U ÙL:ÉæKÕ/zE/ìæèhÁ"ìáçÝî”Aø'#FMŽç¥ŠG1”8k·6ÜÀé/>Ð >Y™°xü›‡gײìwéå!~z||z™HfòZ·{CÞ“¢#Œ{û3â?C1j¸¢þº\wë%’ÎÁbku\'êßÆ4=>XdÂQ½fØáž[= ‹6‹ÏW‡+KKËkÛ‘ó»Lღ¾{m7)IKx'¼~ãŸ#Œ®ñj‰ðŒI*”wIš«£Èé[W}àf¸Õj6êµÚ7"/M"âi¥X¬Ð[”1*=]„'Gm6‡Ó3Ü;ÈÑÌñ›©ãÙÒ^ÀVÿ4aˆµ…®ßï£ÆªŽ‰f[Û#€q7äÂOR¾ªÅlæù)•zz¢ÏZÂ69Ã+ƒ” ÎÄÃócµ\®PlóÇ÷Y*á’½³¦i ê³üø“%ÝïXC<W{Œ,Úd\®Äؽ,wl׊;š‹ ü]yKÝœŸ§öÛ¤“+¡d ‰ýÅQ„Ïåpù"¹Î>ŒÝQõ»SÍûa¼'íÂýÞô*õe‰º3Œ7ò™Œúm2‹¯°uÓ!on½Oâv’g»k?ÀÒÕ`ÂÀÓæPN¢ÛÉز,&ÃW¨4¹ƒGÔ4vÙ0†¢Ø³æÛmØ£üš°¬Ýv ÜŽ÷©‰QM‚–²A„éɳn›”BìFAøãå*YÃ=”f²c |5~ÜîxÁþçýá5áv;Î#fSÌðëåÚxÇñ"ß÷ÂzüQÊÞÇ‚zà š7–ºÜíS=¹Ú{áù2ì³v¯ ŒÙÀ+p-lœâýÉ]unæ<-ZñÅn„iz!“|7‹‹Œþ=¼BxOÅí2"lQPkh֪ŷt"ºê1;5T¢JxºØ] „bé>uT¯³çÛsv•€Õ£?WÀ“jmž¥ØC PÍÆ;û¡.Ú¡Žc‘B®-QÍ.=ãÞ †äUQ{CS¢ÄسyJ‡ÿ0‘Éåóù7Ùìk&u{¶˜#o}cöíÄŸ^Á«\^ŸÑ5Ÿgfi+Ï”¿jõz£‚ñükê:¶îs¨…¤nÀ å‡×¿9»Ï?oÎygCÇ÷éçÄðÐÕÏÜgéd|ô‘'PÚöož³hÓo ¾§ßÓg=GH•Ô,#º·{G æHÍÓëÑ‹ë×W—g± oÌ€Ü^‚ –È0¹²zyEFüì0ä5[F½þƒ“øíCê „<·—±í%·E%¤G;Ë)v÷|0¼¿¿éw{üÛGçÑuDŸÃh:_3æß9¹8Ý_vé„®Ôä];<‹#]ßÜ¥²Î˜Ú+¼¡¶YÍ^÷åÓ`–H;:³ÚØì`}myaÊiV‹ÑûiÈéºÍ³¸Z'#´ºèµëär•Á>9…÷£±££èA8ä÷Žä|]`_®³8½³s3.»Õ19¿ZÌ€#Gò%æÉ…ÕPÐï±*ùlŽHã˜Z ¢MolíÝdj±ú¡Ì3EA7?óÿˆ²Ïû”é¬c®‰‰I.çˆÅ –ò±È,D±Úäwõc||ÌnTÀŒ'’kM—Ç7·è_œ÷yÇí¥ˆ;à8BY UéÍV³A£Ö™ìN×ø(ðA°Ë0[¤2:œãΓxçÈ®78±–Ý3+7í =_ÅÔ ¢{»Þ'¢KD2¥ZÁ¡V«”r)r]ï1Ää¤ ¥Š ¥¹ Î`°8|±\6[¬³Q¯–‰¨·{¶2Ìdó„©T,Š¤ •Z°;¼`tðH¥"!ð jÙˆ>ü©ó‡Ægñé|sª{µßX,—×.—Ãî½u1Xl·O¤+‡~zÆá Db‰T" xœÁtqÎ&¨DXË\¤Ôi‹x„^³CšÆšHB»üÑ'-ZuÀ÷bÛgSL5åû òWø·Œ>ôÉ!€ˆwXL&üÇÐ`Ÿ{ 0 ê :‘–ˆGݦ“Û#IºýôÖªùÔùÖ,bÿ°Cÿ hQÿ—õ3…z÷æÕëûךõ¯÷ìýɆϮҩÏß0WáðGrŒØl|Wé›èÚ”õ÷å‹Ü€3x6ã/•?)šÍFí³œK^ì/»-Jûÿൿ QØç÷osÕGHØÜ6êݧëØÆÜØ0âü®|ÑS s9vÿV¥ÿp§ÕjÔëµï#÷æ8¼ä±iăÜß0G2<<ºÏU¾©g£-0¹µïÏJá5y}^žÞž€æ;¬ß hvÌŒ&2Åêw½Ñ9*nµ¶¥\úøòéQã`oï7â›&—÷._‹ä¼Þ#€œL}Vß¹ôãõÉþú¢gĨ¢ùæìwÂØàœ[ÄÒ¹Bé½Zý¨V+ïåb>—IÝÅO6—}.›^)¦ûªð·ÄäJ4ÖÉÅõ}>>¥3//™ôSò>?î®|“#&LÈe1~WãKÄ`äzÛ„/°>ˆŸœžžÇ÷¶CËóS.‡I«ó‘“œÆô¢#ÒBz}þÀòrÀ??;í1F.æsYƒ¿Øþ](£©Þh±Ù»Õb4èT ¦åsþlQ©D*“Ëe (òyXLûOd‹‰•™ ªFÁÂ.÷þcÉÀþGø§1鮂Ö~ endstream endobj 12 0 obj << /Type /XObject /Subtype /Image /Width 240 /Height 82 /SMask 11 0 R /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 3 /Columns 240 /BitsPerComponent 8>> /ColorSpace /DeviceRGB /BitsPerComponent 8 /Length 6214>> stream xœíy˜ÅùÇ¿U}ÌtÏìÁî²,Dz°ÜQTLx*D#ü¢B¨`ÂåÊ%ñ<¸5b~êÅpŠþ!Š–ÕeÙåX`wçè£~Œ;OÏÝÓÓƒ˜ôç™ÇGz«»ª«ßzë·ÞªÎOAÈv$Û8ü—À󼪪¡ÿoSZÚµk×òöå-JJŠŠŠšåçË^/G)cŒâóûÏœ>]Ss¬âpÅ®]»vìø¥T×õÌ‹á´CFBcJZ¶ìÒ¹Ëå?¾ü¢‹.¦”*Š¢iZÊÛA ”nxíµÍ›6ž:u*?¿Y]Ý©ŒÊ“ÉÍ………?ýiÿ›‡ “$)Z~ŽÇãY·î™×7lj!ÖpÚÁ Ç]s͵cùË°†¶…ÚÚÚ)“'eòG Ò£¤¤åÔiÓZ·nÍ󼢦®®î×wO„U=í´ƒÀz_ØgôèQ¥¥mu]φ(‡ùlçÎ'Ÿ|ÂÚ½¼½Eqø#ä|èÞ£û˜1cËËËMõ2äâ¾}ËÚµ«8|ؽŽ†vHFAAÁ„‰/ºèâ# ( c¬¢¢`„P¯×[XX(‚ªª™hñššš©S&[¸ñ¿KCË #PFd±ßü ÿ¿™4IQ”$Ò¬(Ê3¦=zÔx±¬¬lØðáÝ»÷eÙšX·iÓ¦]»v‡ÓWÒñ5ô H•Ð?…º ºY1—#3{‚³òHá&BŒj¾°Ú2+¡gòŽh z5¸2Ð ðu`*p¬ ú·`Ðë²Ó~À=Áµá€ÍÐÔxÑx;‘õÀóüSO/*..Nž5clܯn÷ûý‰Ü0dèÈ‘# ±blØðÚË/½”î]ñs ~:\¡ÿ÷Õ‚-FðÓ„¯o…Ÿ€{îL¦†þu1jŽ0m#×Ar'þÐûŸ[à_¡šÏ½äXkÐ…pµu5=Ÿkä¨óL”6-®ÿ9 î¦+UÐo/nâ'ᾜ±À¡1*!¤°¨pÉ’e”¦P8ª¢ÜqÇø$Ê;„ËåZ¼di~~~òd±TUUÝwï=éÞ¿ÐAc#èç)]÷kÇBL7ƒDì….€è€å_JuGö †äJœ8ôŽ9 ³áöšQPàØ"¸_ÔTh*O8ïg#c l†ü\EMm)ôû UÄIdÎŽ×ÀºvíºhñÒ”ÒL)>ýþ”Ò Ü=qÂÁÿ;eÊ(:tèî-H$ÐJÌ(¹ÂfÈWÚay×e¨’RútàQ¸ÌH¦ÂWoNêàÙùbpæUº]£ïb?Aš1$ê3qÀ¡ÄýUÌŸöÇ\)-m;ã™f¤ùoo¼Q]]m¾Øóæ=ä7!ýQäxsÒ½%~ÑÕŠä€Ì‡kÜ9£ÚH"&~iÑ´38ã €þ ´ÐªÁø¦‹ÿ€¶ÝœAEÈK bŠC |\HýÁ½ Oh܆Däfº±0 ™ØårMŸ1$u±}>߳Ϯ3WäïPUõÉ…9ŽKÔ/¤:èÚ ÐÜ›GÃw0±JH‰±:9à3#3/"¹&¤åz~C&0¾#†_îa¸O€=ˆ„Ú(t`5ÜžÈÜ)жúËPöBÓ ¤'¸kÁõ—’¡½AŒƒx„³†7 ™Æ¢¤¥‚òÀƒ3yžOY„×^{5|¾cÿþ}õõõ’$™LO9u*í#%ëƃ <é)^Og,•7ÈTøÌ?¨-è T…o)I롉l~Û¡ FC^:št\e ƧP`=”•ˆˆËiÛ u+TùÀRH™hkÜñçŒypÀZ(¹À0ØdܧOI–(G MѺ\î|ðµ\V¯^5uê4“‰«ªª,daJ Cï«fp?\]Á-´{üž’#Ð× ElW”Û™„Ä|¯ƒä"…ëò˜ û$jÞäzðˬ3Y7‰lØ"\šÆ<—‚ef ìƒ~gßœ5:vìŽr„Дínÿ¾/,gLFç¹ÝîwÞyÛB¦Zv#Û_gÐ)û‚3 ¯ ô·î2é°×á1™X.E}ÊÌB¿Ðày½\7ÐØ¡½Ix w¤÷ØV;Ì$4YÉ×Ô(°ÚÄÌtG,Ý{t§G(!„¤ÖÖ·œ‘ù5)Û·o¯¬¬´Ez³u_Aÿ5ü3í€Q+À…çb,#˜É_£¹ÉËW ¸ ÿôË`zHC.ˆ±õS`’Ý‚e$ÀóipºíÒìõz§IsjdëUˆ”Á„•¿_a1÷¼ õ:4œˆTu0üÐó)8ä[°÷"íð"dkOûYäØë$Xuž”ÔÝ—qÀ€1¶Z!¼^/Ó ¥õ¢CÇŽ–óE—{cúý÷544XËÂb<… ÜßèQ50®^HÏטUž# j4V²É’L÷¬«ãYlºÜ/ÚA¦Áw\ž!n·;ø¡Î;›T´±”—·Ož€ã¸5øƒ5c#„õ!Œƒïÿ åW~waú#z T#?lúgòÔ‚ÝTirAþÙüDwˆ®†ºâ€Ïll‰e&\F»n”YÎÑ$~ _¿~ÖfÆ¿#É_].×êU«¶n}×jÑ€ÌÃGg!°¤¯a´¤OÀ=.ÍÎQ¹-ý)€P_ ÑØd-ï€ïKÓfƒ$,a¨È¦†ž¡$<Þ€u©|”– ©\Jèºvë#¶mÛ–V.„6mÚ‡·:ˆBÅyóÚ³{wZ%ÃN¸þŠH±øèè4½ý,›¡Ù+¡¼Ù“„XéÇV ¤¬jËaŸ}|±Ñ5vÑØØHiz궸¤Åˆ#Óº…1vç]Is0œ÷ÐÜÇI’;nóØ E˜ÿ_!‡U–Üñ…81Nß" ‚ …`ÄF`)¤¹ðo1á}‹J‘½æ7 ¢ÛNslw6GŸ§OŸ654 ©ÚÍÆ}ñÅÞÝ»w›ô+8¨K—.‰Úår=üÈ£¤‰ŠŠŠ;w~òñÇG**ÎÖŸM«l6hhœ»>cˆÀRdÚÚìe‚ëŒzáF°¹p 7ÑŸ}h™…Õká†i˜o,h/‡J÷EQfΚ=èºëÌHsiié]ªgŒ1¿ßïóùŠŠŠ8{ÎœuÏ=÷øüyyiÄRÛ Ð!öAÿÂÐ3à‚óÉÝb-”yD)× 0â]©æÿe0šu »}U†‚36”J至©žCìß·Ï¢]×ÇŽ»îÙ犚7O’¬eËVó,49c,¶k×nåªU¿[þ{·Û”~´ó«L‚ßhdðÀì¦Z²ÄÛPï†/ªX¸ ÂMIõôg‘͵$ à1C·&Ïfm,häøñã'OYÏp¹\Ë—¯øÝòƤëßÀÓ‹Yvó…),,XûÇg®¾úš”)ã·Ë<gíWÐÇ›sAÜñÆÈój4ú8Þ‚'üõ< —¢>»óȺ‚®ƒe㻀Iðœ`¼Wòª¡N|ñÖ/eZ¼9\ À`¤˜_¸b¸ Àt>H<xžð÷fÀ4„?Œ×ë¿`¡Ç둤;HpÇq|]Ý©S§N5Ôׂ·Kêö£nI,taó¦MÉC±mV3O"hìZ4 ýy¹S¿ ßÓÒÀï µHàÄ:f”t/H[k}Á?þ{Y1R__ÿÂÏg¢J5M²,·nݺs—.={^Щs'¥€¢(72jÔh‰l$ûûÍÐŒYÝnß2D{9 v#OGË4{ ¹ÄC´Û nð¸3¾ù蟽ü¿/Y[¡}ÎPeèÏ~Ö«W¯DƒQûz=£_s>EwDánEcTù:€ÞϘfÀ&¨ÔðÏî Öãtbð€üÈ0ŒÖ€Ýç|jpË–ÍS§LN²-Áù€®ëÎœåñÄÍ´_ wA3zƒ`m³3~²…`<|FùU F‡Ë4ª ü«EBt5öo[õ¦¶¶vü¯nŸ1}zmm Çq*lBÈ'üÏ?Ü»gϱc5¢(fþLº®O¼ûî¸ÊŠúÜí’&e£-AŽd#›Ø}-”±Ñô€Üqu<Ãaèe†ö9âëPOÛ1 Þ43G¥TWWßß½IvvaàÀAãÆ·lálÙ²å…?=u1+ÆÀ7Ðs*mÎKG‡X‹ ±”HÜÓ]Ð÷DêÎA௰c ɨøд¸ð¯g‚_ìn ÙcÀ€+gÍžmFškjjî½gZò}JEÙ¼yÓˆ[o9RQaÍ»rà ×Ç^ÌŠ#3~aÏy/ÐÖA1V?âγ`)‚Fï†xîLÖÀ†ÈÆ\ºüäŠ+&Lœhf/]BÈÜ9³MÚ#àf|±w¯™±k·nQ³"ÐQ+IÓÚ'à{äld?0ÞƒŸCÛÓ?LEçñйwïÞ“'O1c7BæÌžuæÌ™´žÿÈ#8p ÝRƒÁz^uñ\Tâ©È®µQ†pÇÄ•ó$Q.è /Y]Ü…˜±9¸ÍýÎA¸L³fÍfÏ™krŠ¤²²ò믿¶ËsÆLíÚG/ÉŠ—£ÄØ–(Û0k¹7 I0S[à{Rø#3 ÈzÈ£,͇K‘ù®Fð9sÁ·Ó þÜ>×a\fÎœeòx+ÆØÿg5öÌ33flZ~ââ踨¬hè¶ FS«ê"ÐÍÒñ‚†>?2•¥ ‚äJ}’7R ÍëÝl÷°7«ÑØØ`yq+€wÞ~ÇüFa!bwsÌJ…ô2<–•Ù€´)RµTò½Ê&(Q}\è_ —œ«aC¶UÅM7Þ¤(¦ú JéÆ39†"|øáö´n¡1»?Ú/ÐèkP1pôÜjh˯ea¢.#ð}hQ•š²òåç_8xº\zée¹yy&SJÿþÖ[æøþ{崙¾±1ÚÀ³_ €Ëè(' çXC뀤Eš:²¨Ñ½H€æ¬Øá32#X÷JHço ‹ ÆoôÓ%ß¿=´ä$몪ҚÝeÏfι¼ñmÏMˆz˜Ð# ¿¹ÄÜjæÐi/«!›üÝt4ÅÃð¯D0J!‡¢—Þ„gôùo˜ABÝ`Œ1Ʀiš®ëº®‡/…Ñí8îMU•´– W‰ª°S %àåH± ÀKçv©,fÁ’ õû¥ê÷)À€ypE©ÒZ°´Êý"”)ðÇŽh`"„M§A<¿–X¦"´äI×4JICCý‚§ž¼mäH¿ÏTEQTUg̸%›-f%ÇqæϨa×®]QMu‰)s ÀhwCT"/î‚~Òô99\Àkmæ"pƒÁ‡þ-‹á~ÚJÌË™×%àŒê…&¥¿IȧЮGãr¸K#wØ×€\aF#øú~è•Ð·Býæûvþ$Ï^ÊÉy}ÓÆÚ“'÷} ١÷BÜCÉÙ³g9žxAEQÀó´ÉDeënø0…EE懕º®ïܹ#ê¢)n2b¬S–… #û€úbNfQÓ‹Ø]tDæ÷å$ ¤hpgÁBMdÜÆb€~஄ôôPÿ ý,X€bkÀßÞ¹Él†ZmIÚjÁnoÄhdáuÀ”–rÀI°oM8¶bÏw6m¾?»ªZé¥Wû‚{œÏYP×ÖŠ¢(ɲ,Ë„J) ½z÷þñk¯Æ9HÀ”#€ŒIê½õ=R`Zª}2掌JßÖ½É+UDì‡þxfÑs«|Á:ƒÆ••ØAUÔ¼c‘%¯Cóï¡NÕdâ#ȳÎØÑꣲ,çææ^àž›¢iÚ¨Q£2èÁƒ¯3|'Â[o¾{=¾ áØ\æ!°#UD¯…-ð’3ä P€ &PK_¦(›?0¾ëјHÓG½yWPãi™M»üŒAQzª*Í|ÅØѪªÚÚÚ3gNû}ª¢ê,âû–%-yÞºìôêÝÛ¤ÏÀsÏ=w¥z|6s$O\ànBãÛ©L⼈ýúíá,Ø(ønFã¿ §«íy`-‚¶H³±<¿#ã4¾Õ“tô~U“ÝâBÓÝÞðu ]âQ~—È£a¬QS[[WW×Pßu]‹²w9žŸ2uªå‡9ÊL4MÓ¶lÞ÷OñÛÓ¯FœHÈíÅ|m‚‰¶ˆ¢¨žñQ…ˆ§hƒÝ _ ȵàÇA”#b«”2ÈPV!X™ÛõØ|– ÐÜ(W€Wb2êÎXèúu*ÿ½èθ ‰WgÿüóD ~‘Êß…….ñ;ÛR*ŠBnnnq‹[·nݺMóâæ99¹.QŒÍw¹\Í»wï3¹PJW®Z““úÐXŽãþ°zuòÄ~ðñÙCSÕòòrÇãÍñæäääååæçå7+((((ÈËËóx=.—Ès|ìdµ¦iW^uUYYÙg»v©IA–,]fòhûÅ‹ŸNyD¢£¡’qíµ×†vÀ „ò<ç–¤œœœfÍ š5kæÍñJn‰çã´‘;v¬X±_#€¢¢¢!C†¦<ý›PòÍ‘Ê9sf›ôOÿ £Á²ÎÁƒ}~YYBÇq¼À‹¢(ÏóÔĶŽ!מ,˲,—””„Õ9c,å"EŽã–.]º}Û?ÌØÑÐ)ÈÏËzÉbMÓHhº›r”RJ)gòhCH’ôî»ï>óÌÚ†úô–À8íš={Ξ5GQ•ïãí†çù,Y¼¨¶¶ÖÂíŽ#;˜¢OŸ>÷MŸ²²!4„MS¿ùæÛÇ{ìÌ™ÓÖŸcc™þ³)++›¿`a6žÌóüë6¼øâúL–$†pÚ! <Ï܇æµoß>óÌ)¥¢(nÛ¶íÏ/®¯©©±kktG Ò¦[·n£FßÖ½{w¿ßŸ–N¥” ‚à÷ùß{oë‡~øõ×lß‹Úh‹””´0`#ž=:vì$Bhax©áwB(ÇiªVUõíáÇ8°g÷î#1mÄhhÑ¢¤c§ŽZ¶*((àrº®îäÉ“ÕÕÕ‡Œ]›íààààààààààààààààààààààààààà`'ÿ|º¢ endstream endobj 13 0 obj << /Type /Page /Parent 3 0 R /Contents 14 0 R >> endobj 14 0 obj << /Length 6472 >> stream 0.200 0.200 0.200 rg 0.933 0.933 0.933 RG 1.000 1.000 1.000 rg 34.016 34.016 543.969 723.969 re f 0.200 0.200 0.200 rg BT 34.766 713.165 Td /F1 28.5 Tf [(Trainers Report )] TJ ET q 180.000 0 0 61.500 397.234 695.734 cm /I4 Do Q BT 34.016 682.774 Td /F1 10.5 Tf [(ID: 26 - )] TJ ET BT 71.364 682.774 Td /F2 10.5 Tf [(Sun 29th September 2013)] TJ ET BT 193.941 682.774 Td /F1 10.5 Tf [( - Trainer: des cooke )] TJ ET 0.957 0.957 0.957 rg 34.016 652.459 242.150 27.263 re f 0.200 0.200 0.200 rg BT 40.016 661.512 Td /F3 10.5 Tf [(Label)] TJ ET 0.957 0.957 0.957 rg 276.166 652.459 301.819 27.263 re f 0.200 0.200 0.200 rg BT 282.166 661.512 Td /F3 10.5 Tf [(Content)] TJ ET 0.867 0.867 0.867 RG 0.75 w 0 J [ ] 0 d 34.016 652.459 m 276.166 652.459 l S BT 40.016 636.372 Td /F1 10.5 Tf [(Course Date)] TJ ET 0.75 w 0 J [ ] 0 d 276.166 652.459 m 376.772 652.459 l S 0.75 w 0 J [ ] 0 d 376.772 652.459 m 477.378 652.459 l S 0.75 w 0 J [ ] 0 d 477.378 652.459 m 577.984 652.459 l S BT 282.166 636.372 Td /F1 10.5 Tf [(Sun 29th 0000027104 00000 n 0000033576 00000 n 0000033641 00000 n 0000034648 00000 n 0000040387 00000 n 0000046859 00000 n 0000046924 00000 n 0000047094 00000 n 0000047159 00000 n trailer << /Size 25 /Root 1 0 R /Info 5 0 R >> startxref 47307 %%EOF