[iText-questions] Additional informations to a graphic to use Object Data tool in Reader?

2009-03-16 Thread Matthias Uhler

Hi there,

I'd like to add some additional informations to a graphic in a pdf.
In Adobe Reader there is a Object Data tool which should 
show these attributes by clicking on a graphic.

Therefore I produced some code..
http://www.nabble.com/file/p22539056/PDFObjectData.java PDFObjectData.java 

To me it's unclear how to get a reference between the additional content and
the graphic.

Maybe someone helps me with a hint...Thanks in advance!

BG Matthias
-- 
View this message in context: 
http://www.nabble.com/Additional-informations-to-a-graphic-to-use-%22Object-Data-tool%22-in-Reader--tp22539056p22539056.html
Sent from the iText - General mailing list archive at Nabble.com.


--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] Additional informations to a graphic to use Object Data tool in Reader?

2009-03-16 Thread Matthias Uhler



Matthias Uhler wrote:
 
 .. http://www.nabble.com/file/p22539056/PDFObjectData.java
 PDFObjectData.java 
 

The problem is solved...I missed to enable the UserProperties..
-- 
View this message in context: 
http://www.nabble.com/Additional-informations-to-a-graphic-to-use-%22Object-Data-tool%22-in-Reader--tp22539056p22540007.html
Sent from the iText - General mailing list archive at Nabble.com.


--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] how to construct a geospatial measure dictionary?

2009-01-23 Thread Matthias Uhler


sam krasnik wrote:
 
 
 I did the same thing (I created a sub-interface of PdfPageEvent to have an
 onAddPage method, which passes my a PdfPage which I can add stuff to), and
 came up with the attached pdf. Unfortunately, after looking at it for a
 while, I can't see the difference between your final test.pdf and mine.
 The only difference is the slight difference in dimensions and dictionary
 key order. Please let me know if I'm missing something.
 
  http://www.nabble.com/file/p21609305/geo_base.pdf geo_base.pdf 
 
 thanks,
 
 --sam
 

you have to define the viewport-dictionary as an array-object because ther
could be more than one viewports! In your code the [ and ] around the
viewport-dictionary are missing...

I noticed that you put 2 viewport-dictionaries to the document.
You can put an indirect reference after the /VP entry to your object 4 like
this:

/VP 4 0 R

the reference allocates to the viewport-array which should be written like
that:

obj 4 0
[/Type /Viewport ... /Measure 3 0 R...]
endobj

dont't mind about the key order, it's irrelevant in a dictionary.

let me know if it works, you're welcome!

greets matthias



-- 
View this message in context: 
http://www.nabble.com/how-to-construct-a-geospatial-measure-dictionary--tp20703775p21620658.html
Sent from the iText - General mailing list archive at Nabble.com.


--
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] how to construct a geospatial measure dictionary?

2009-01-19 Thread Matthias Uhler


sam krasnik wrote:
 
 I tried doing the same thing, but I couldn't figure out a way to create
 the VP dictionary on the page, because I don't know how to get a direct
 PdfPage object whose dictionary I can modify. I can get an indirect
 reference through the writer via getPageReference, but not the PdfPage
 itself. I am importing a page from a PdfReader and get a PdfImportedPage,
 but how do I get access to the underlying dictionary that will be written
 to the writer?
 
 thanks,
 --Sam
 

I had the same problem. I think, there is no way to acces the
page-dictionary.
So you have to produce some code to some existing itext-classes to get the
possibility 
to add a VP to the page-dictionary.

bg, matthias
-- 
View this message in context: 
http://www.nabble.com/how-to-construct-a-geospatial-measure-dictionary--tp20703775p21542471.html
Sent from the iText - General mailing list archive at Nabble.com.


--
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] Enabling PDFs for Commenting?

2008-12-05 Thread Matthias Uhler

Hi,
is it possilble to enable PDFs for commenting with iText?
Thanks for reply, Matthias
-- 
View this message in context: 
http://www.nabble.com/Enabling-PDFs-for-Commenting--tp20851645p20851645.html
Sent from the iText - General mailing list archive at Nabble.com.


--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] epsg entry in gcs dictionary?

2008-12-01 Thread Matthias Uhler

hi,

when i choose a wkt string for WGS84 as entry in a geographic coordinat
system dictionary (iso 32000 supplement, p. 51) like this:
dictionaryGCS.put(new PdfName(WKT),new PdfString(GEOGCS[...]));
The georeferencing works great!

Instead of using an wkt string I tried to change the entry to an EPSG-code:
dictionaryGCS.put(new PdfName(EPSG),new PdfNumber(4326)); //EPSG of
wgs84
This doesn't work! I tried also other epsg codes without any success.

Do you have any idea or hints how to put the code for a working PDF?

Thank you, Matthias
-- 
View this message in context: 
http://www.nabble.com/epsg-entry-in-gcs-dictionary--tp20774491p20774491.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] how to construct a geospatial measure dictionary?

2008-11-27 Thread Matthias Uhler


Mark Storer-3wrote:
 
Reading the ISO supplement, it looks like the measure dictionary has to be
attached to a particular XObject (form or image) to do any good.  Adding
it to
the document without being referenced elsewhere isn't going to help much.
 

Yes, that's why I construct a vieport dictionary (/VP pdf reference 1.7,
p.148) to the page object.
It contains all entries which which are given on page 745 in pdf reference
1.7. The /Measure key is  
manual referenced to my measure dictionary on the document.

Do you think this could work? Thanks for your interest!
-- 
View this message in context: 
http://www.nabble.com/how-to-construct-a-geospatial-measure-dictionary--tp20703775p20715618.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] how to construct a geospatial measure dictionary?

2008-11-27 Thread Matthias Uhler



Matthias Uhler wrote:
 
 Hello,
 
 could you please give me some support to create a working geospatial
 measure
 dictionary as it is described in the ISO 32000 Supplement...
 

I solved my problem with a WKT String...

here is the sourcecode and my sample file: 
http://www.nabble.com/file/p20720859/test.pdf test.pdf 

PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(test.pdf));
writer.setPdfVersion(PdfWriter.VERSION_1_7);
document.open();

PdfDictionary dicMeasure = new PdfDictionary(new 
PdfName(Measure));
dicMeasure.put(PdfName.SUBTYPE,new PdfName(GEO));

PdfArray bounds = new PdfArray();
bounds.add(new 
float[]{0.0f,0.0f,0.0f,1.0f,1.0f,1.0f,1.0f,0.0f});

PdfArray pdu = new PdfArray();
pdu.add(new PdfName(KM));
pdu.add(new PdfName(SQKM));
pdu.add(new PdfName(GRD));

PdfArray lpts = new PdfArray();
//ll x,y; ur x,y
lpts.add(new float[]{0.0f,1.0f,1.0f,0.0f}); 
PdfArray gpts = new PdfArray();
//ll latitude, longitude; ur latitude longitude
gpts.add(new float[]{20.0f,20.0f,40.0f,40.0f}); 


dicMeasure.put(new PdfName(Bounds),bounds);
dicMeasure.put(new PdfName(PDU),pdu);
dicMeasure.put(new PdfName(LPTS),lpts);
dicMeasure.put(new PdfName(GPTS),gpts);

PdfDictionary dicGCS = new PdfDictionary(new 
PdfName(GEOGCS));
dicGCS.put(new PdfName(WKT),new   
PdfString(GEOGCS[\GCS_North_American_1983\,DATUM[\D_North_American_1983\,SPHEROID[\GRS_1980\,6378137.0,298.257222101]],PRIMEM[\Greenwich\,0.0],UNIT[\Degree\,0.0174532925199433]]));

PdfIndirectObject indObjGCS = writer.addToBody(dicGCS);
PdfIndirectReference indRefGCS = 
indObjGCS.getIndirectReference();

dicMeasure.put(new PdfName(GCS),indRefGCS);
dicMeasure.put(new PdfName(DCS),indRefGCS);   


writer.addToBody(dicMeasure);   

PdfContentByte cb = writer.getDirectContent();

cb.setColorFill(Color.gray);

cb.rectangle(20,20,document.getPageSize().getWidth()-40,document.getPageSize().getHeight()-40);
cb.fill();
document.close();

This file also works in the Adobe Reader 9 but the measurment tool isn't
available.
Do you have any idea how to enable the measurment tool?

-- 
View this message in context: 
http://www.nabble.com/how-to-construct-a-geospatial-measure-dictionary--tp20703775p20720859.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] how to construct a geospatial measure dictionary?

2008-11-26 Thread Matthias Uhler

Hello,

could you please give me some support to create a working geospatial measure
dictionary as it is described in the ISO 32000 Supplement on page 50?

I start with my dictonary...
PdfDictionary dicMeasure = new PdfDictionary(new PdfName(Measure));
dicMeasure.put(PdfName.SUBTYPE,new PdfName(GEO));
and add it to the PDF body...
PdfIndirectObject indObjMeasure = writer.addToBody(dicMeasure);

Just for my test, I add a viewport entry into the PdfPage class which refers
to the measure dialog.
When I open the PDF in Acrobat9 the area of the viewport has other 
measure units by using the measurement tool and this just works when I put
the subtype /GEO!
So I'm on the right way, aren't I? I think the following entries I tried to
set are uncorrect.

I analysed some georeferenced PDFs and get those sample pdfsource:

1) /Type /Measure
/Subtype /GEO
/Bounds [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0]
/PDU [M, SQMI, DEG]
/GPTS [62.01908823, -148.5592757, 61.70916419, -148.0732501] 
/LPTS [0.0, 1.0, 1.0, 0.0]/PDU [M, SQMI, DEG]
/GCS 25 0 R

/EPSG 24 0 R
/Type /PROJCS
/WKT PROJCS[NAD_1927_UTM_Zone_6N,GEOGCS[GCS_North_American_1927,
  
DATUM[D_North_American_1927,SPHEROID[Clarke_1866,6378206.4,294.9786982]],
  
PRIMEM[Greenwich,0.0],UNIT[Degree,0.0174532925199433]],
  
PROJECTION[Transverse_Mercator],PARAMETER[False_Easting,50.0],
  
PARAMETER[False_Northing,0.0],PARAMETER[Central_Meridian,-147.0],
  
PARAMETER[Scale_Factor,0.9996],PARAMETER[Latitude_Of_Origin,0.0],
   UNIT[Meter,1.0]]   

2) /Type /Measure
/Subtype /GEO
/Bounds [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0]
/PDU [M, SQM, DEG]
/GPTS [41.8542633915, -87.6461669659, 41.8541355913, -87.6251297546,
41.854003938, 
-87.6040926815, 41.8751675042, -87.6459430942, 41.8750396107,
-87.6248990306, 
41.8749078614, -87.6038551054, 41.8960715387, -87.6457189854,
41.895943552, 
-87.6246680623, 41.8958117066, -87.6036172776]
/LPTS [0.25, 0.25, 0.5, 0.25, 0.75, 0.25, 0.25, 0.5, 0.5,
0.5, 0.75, 0.5, 0.25, 0.75, 0.5, 0.75, 0.75, 0.75]
/GCS 16 0 R

/EPSG 15 0 R
/Type /PROJCS
/WKT 
ROJCS[NAD_1927_StatePlane_Illinois_East_FIPS_1201,GEOGCS[GCS_North_American_1927,
 
DATUM[D_North_American_1927,SPHEROID[Clarke_1866,6378206.4,294.9786982]],
 
PRIMEM[Greenwich,0.0],UNIT[Degree,0.0174532925199433]],
 
PROJECTION[Transverse_Mercator],PARAMETER[False_Easting,50.0],
 
PARAMETER[False_Northing,0.0],PARAMETER[Central_Meridian,-88.33],
  PARAMETER[Scale_Factor,0.75],
  PARAMETER[Latitude_Of_Origin,36.66],
  UNIT[Foot_US,0.3048006096012192]]

My Problem is to understand which of these keys are necessary for a
successful dictionary.
Required are just /GCS and /GPTS.

For Explanation: I'm studying geoinformatic and surveying and do a practical
training
in a gis company which offers a free gis-desktop software. That's why 
I want to know these things. I hope not to bore you with my questions!

Thanks a lot,
Matthias 
-- 
View this message in context: 
http://www.nabble.com/how-to-construct-a-geospatial-measure-dictionary--tp20703775p20703775.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] order in a PdfDictionary

2008-11-24 Thread Matthias Uhler

Hello,

could anybody tell me how the ordering in a PdfDictionary works?

I would like to extend iTExt with new spatial spatial features wich are 
described in Adobe ISO 32000.

sample code:
PdfDictionary dicMeasure = new PdfDictionary(new PdfName(Measure));
dicMeasure.put(PdfName.SUBTYPE, new PdfName(GEO));
dicMeasure.put(new PdfName(GCS),indRefGcs);
dicMeasure.put(new PdfName(GPTS),gpts);
dicMeasure.put(new PdfName(LPTS),lpts);

PdfIndirectObject indObjMeasure = writer.addToBody(dicMeasure);

appearance in pdf:
/Type/Measure/GCS 2 0 R/LPTS[0.0 1.0 1.0
0.0]/Subtype/GEO/GPTS[41.00 -87.00 42.00
-88.00]

How important is the order in a dictionary? 

Thank you in advance!

Matthias



-- 
View this message in context: 
http://www.nabble.com/order-in-a-PdfDictionary-tp20660730p20660730.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] additional entries in image dictionary

2008-11-21 Thread Matthias Uhler

Hello,

is there a way to put additional PdfNames() with a PdfIndirectReference()
to an image dictionary if an image has been instantiated?

Thank you in advance!

Matthias
-- 
View this message in context: 
http://www.nabble.com/additional-entries-in-image-dictionary-tp20618666p20618666.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] syntax of geospatial pdf

2008-09-04 Thread Matthias Uhler

Could anybody help me with an example of pdf syntax to understand how to
structure a georeferenced pdf. 

I hardly understand the constructs on page 49 of:

http://www.adobe.com/devnet/acrobat/pdfs/adobe_supplement_iso32000.pdf

Thanks!

Regards,
Matthias
-- 
View this message in context: 
http://www.nabble.com/syntax-of-geospatial-pdf-tp19306776p19306776.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] syntax of geospatial pdf

2008-09-04 Thread Matthias Uhler

Does anybody has Acrobat 9 Professional Extended 
and would be so kind to create an examlple for me =)

Matthias


Leonard Rosenthol wrote:
 
 The easiest way to create samples is with Acrobat 9 Professional  
 Extended, which can create and manipulate PDF Maps.
 
 Leonard
 
 On Sep 4, 2008, at 5:32 AM, Matthias Uhler wrote:
 

 Could anybody help me with an example of pdf syntax to understand  
 how to
 structure a georeferenced pdf.

 I hardly understand the constructs on page 49 of:

 http://www.adobe.com/devnet/acrobat/pdfs/adobe_supplement_iso32000.pdf

 Thanks!

 Regards,
 Matthias
 -- 
 View this message in context:
 http://www.nabble.com/syntax-of-geospatial-pdf-tp19306776p19306776.html
 Sent from the iText - General mailing list archive at Nabble.com.


 -
 This SF.Net email is sponsored by the Moblin Your Move Developer's  
 challenge
 Build the coolest Linux based applications with Moblin SDK  win  
 great prizes
 Grand prize is a trip for two to an Open Source event anywhere in  
 the world
 http://moblin-contest.org/redirect.php?banner_id=100url=/
 ___
 iText-questions mailing list
 iText-questions@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/itext-questions

 Buy the iText book: http://www.1t3xt.com/docs/book.php

 
 
 -
 This SF.Net email is sponsored by the Moblin Your Move Developer's
 challenge
 Build the coolest Linux based applications with Moblin SDK  win great
 prizes
 Grand prize is a trip for two to an Open Source event anywhere in the
 world
 http://moblin-contest.org/redirect.php?banner_id=100url=/
 ___
 iText-questions mailing list
 iText-questions@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/itext-questions
 
 Buy the iText book: http://www.1t3xt.com/docs/book.php
 
 

-- 
View this message in context: 
http://www.nabble.com/syntax-of-geospatial-pdf-tp19306776p19308641.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


Re: [iText-questions] spatial referenced pdf, gis

2008-09-02 Thread Matthias Uhler

I'm new to the business but i'll try my best.. =)
-- 
View this message in context: 
http://www.nabble.com/spatial-referenced-pdf%2C-gis-tp1925p19271561.html
Sent from the iText - General mailing list archive at Nabble.com.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php


[iText-questions] spatial referenced pdf, gis

2008-09-01 Thread Matthias Uhler
Hello,

AcrobarReader offers in its latest versions geospatial features like distance 
measurements and a locating by worldcoordinates. Is it possible to create a 
georeferenced pdf with itext? Thank you in advance!

Best regards,
Matthias Uhler
-- 
Pt! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: http://www.gmx.net/de/go/messenger03

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php