SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
iText	
  for	
  Android	
  /	
  GAE	
  
Bruno	
  Lowagie	
  
What	
  is	
  iText?	
  
Java	
  
C#	
  
Web	
  applicaBons	
  
Cloud	
  services	
  
.NET	
  
JVM	
  
Java,	
  
Groovy,	
  
Scala,...	
  
C#	
  
Online	
  versus	
  Local	
  
Online	
  PDF	
  Genera-on	
  
•  Your	
  invoice	
  
•  Your	
  plane	
  Bcket	
  
•  Your	
  bank	
  statement	
  
•  Your	
  site’s	
  staBsBcs	
  
•  Output	
  from	
  a	
  web	
  app	
  
•  Print	
  on	
  Demand	
  
•  ...	
  
Local	
  PDF	
  Genera-on	
  
•  Output	
  from	
  a	
  desktop	
  app	
  
•  Digital	
  signatures	
  
•  Private	
  data	
  
–  Calls	
  log,	
  contact	
  list,...	
  
–  Photos,	
  scans,...	
  
•  Offline	
  use	
  
–  Document	
  as	
  data	
  container	
  
iText	
  for	
  
Mobile?	
  
Let’s	
  make	
  an	
  Android	
  port	
  
•  Forbidden	
  classes:	
  
– PdfGraphics2D:	
  removed	
  
– java.awt,	
  java.nio,...	
  references:	
  removed	
  
– java.awt.Color:	
  com.itextpdf.text.BaseColor	
  
•  Reduced	
  version	
  based	
  on	
  iText	
  5.0.7	
  
Lessons	
  learned	
  
•  PDF	
  creaBon	
  on	
  Android	
  is	
  as	
  easy	
  as	
  PDF	
  
creaBon	
  in	
  a	
  “normal”	
  Java	
  applicaBon.	
  
•  PDF	
  viewers	
  on	
  Android	
  support	
  only	
  a	
  
limited	
  subset	
  of	
  PDF	
  funcBonality:	
  
– No	
  annotaBons,	
  such	
  as	
  links,	
  form	
  fields,...	
  
– No	
  cool	
  stuff,	
  such	
  as	
  portable	
  collecBons,...	
  
•  Security:	
  
– Problems	
  with	
  BouncyCastle	
  
– Problems	
  connecBng	
  to	
  smartcard	
  reader	
  
Let’s	
  make	
  an	
  Android	
  port	
  
•  Forbidden	
  classes:	
  
– PdfGraphics2D:	
  removed	
  
– java.awt,	
  java.nio,...	
  references:	
  replaced	
  
– java.awt.Color:	
  com.itextpdf.text.BaseColor	
  
– java.awt.*:	
  com.itextpdf.awt.*	
  
•  Security:	
  BouncyCastle	
  problems	
  
– Use	
  SpongyCastle	
  instead	
  
•  Full	
  version	
  based	
  on	
  5.2.1-­‐SNAPSHOT	
  
We	
  have	
  a	
  port	
  for	
  GAE!	
  
Major	
  difference:	
  no	
  access	
  to	
  a	
  file	
  
system!	
  
•  You	
  can’t	
  write	
  to	
  a	
  file	
  
– Use	
  a	
  ByteArrayOutputStream	
  instead	
  
•  Need	
  a	
  different	
  way	
  to	
  access	
  resources	
  
– Fonts:	
  create	
  with	
  byte[]	
  
– Images:	
  create	
  with	
  byte[]	
  
– PDFs:	
  create	
  a	
  PdfReader	
  with	
  byte[]	
  
Demo’s	
  PDF	
  creaBon	
  
Demo	
  PDF	
  manipulaBon	
  
Filled	
  out,	
  then	
  signed	
  
Lessons	
  learned	
  
•  PDF	
  creaBon	
  on	
  mobile	
  devices:	
  
–  OK	
  for	
  private	
  data	
  
–  Normally,	
  you’ll	
  create	
  documents	
  in	
  the	
  cloud	
  
•  PDF	
  manipulaBon:	
  
–  Document	
  as	
  data	
  container	
  
–  Can	
  be	
  used	
  to	
  sign	
  documents!	
  
•  Security:	
  
–  It	
  would	
  be	
  cool	
  if	
  we	
  could	
  connect	
  to	
  a	
  
smartcard	
  reader	
  
On	
  our	
  roadmap	
  
•  Demo	
  Google	
  App	
  Engine	
  
– Google	
  AnalyBcs	
  +	
  Google	
  Charts	
  
•  Demo	
  Heroku	
  
– Watermarker	
  
•  Demo	
  CloudFoundry	
  
– ???	
  

Mais conteúdo relacionado

Mais de iText Group nv

Mais de iText Group nv (17)

PDF made easy with iText 7
PDF made easy with iText 7PDF made easy with iText 7
PDF made easy with iText 7
 
Start-ups: the tortoise and the hare
Start-ups: the tortoise and the hareStart-ups: the tortoise and the hare
Start-ups: the tortoise and the hare
 
IANAL: what developers should know about IP and Legal
IANAL: what developers should know about IP and LegalIANAL: what developers should know about IP and Legal
IANAL: what developers should know about IP and Legal
 
Digital Signatures in the Cloud: A B2C Case Study
Digital Signatures in the Cloud: A B2C Case StudyDigital Signatures in the Cloud: A B2C Case Study
Digital Signatures in the Cloud: A B2C Case Study
 
Digital Signatures: how it's done in PDF
Digital Signatures: how it's done in PDFDigital Signatures: how it's done in PDF
Digital Signatures: how it's done in PDF
 
ZUGFeRD: an overview
ZUGFeRD: an overviewZUGFeRD: an overview
ZUGFeRD: an overview
 
PDF is dead. Long live PDF... with Java!
PDF is dead. Long live PDF... with Java!PDF is dead. Long live PDF... with Java!
PDF is dead. Long live PDF... with Java!
 
Digital Signatures: how it's done in PDF
Digital Signatures: how it's done in PDFDigital Signatures: how it's done in PDF
Digital Signatures: how it's done in PDF
 
iText Summit 2014: Talk: iText throughout the document life cycle
iText Summit 2014: Talk: iText throughout the document life cycleiText Summit 2014: Talk: iText throughout the document life cycle
iText Summit 2014: Talk: iText throughout the document life cycle
 
iText Summit 2014: Keynote talk
iText Summit 2014: Keynote talkiText Summit 2014: Keynote talk
iText Summit 2014: Keynote talk
 
iText Summit 2014: Talk: eGriffie and JustX, introducing digital documents at...
iText Summit 2014: Talk: eGriffie and JustX, introducing digital documents at...iText Summit 2014: Talk: eGriffie and JustX, introducing digital documents at...
iText Summit 2014: Talk: eGriffie and JustX, introducing digital documents at...
 
The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
 
Damn, the new generation kids are getting iPads in Highschool!
Damn, the new generation kids are getting iPads in Highschool!Damn, the new generation kids are getting iPads in Highschool!
Damn, the new generation kids are getting iPads in Highschool!
 
PAdES signatures in iText and the road ahead
PAdES signatures in iText and the road aheadPAdES signatures in iText and the road ahead
PAdES signatures in iText and the road ahead
 
Best practices in Certifying and Signing PDFs
Best practices in Certifying and Signing PDFsBest practices in Certifying and Signing PDFs
Best practices in Certifying and Signing PDFs
 
Choosing the iText Solution that is right for you: Community or Commercial ed...
Choosing the iText Solution that is right for you: Community or Commercial ed...Choosing the iText Solution that is right for you: Community or Commercial ed...
Choosing the iText Solution that is right for you: Community or Commercial ed...
 
The importance of standards
The importance of standardsThe importance of standards
The importance of standards
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Creating PDF on Android / Google App Engine

  • 1. iText  for  Android  /  GAE   Bruno  Lowagie  
  • 2. What  is  iText?   Java   C#  
  • 3. Web  applicaBons   Cloud  services   .NET   JVM   Java,   Groovy,   Scala,...   C#  
  • 4. Online  versus  Local   Online  PDF  Genera-on   •  Your  invoice   •  Your  plane  Bcket   •  Your  bank  statement   •  Your  site’s  staBsBcs   •  Output  from  a  web  app   •  Print  on  Demand   •  ...   Local  PDF  Genera-on   •  Output  from  a  desktop  app   •  Digital  signatures   •  Private  data   –  Calls  log,  contact  list,...   –  Photos,  scans,...   •  Offline  use   –  Document  as  data  container   iText  for   Mobile?  
  • 5. Let’s  make  an  Android  port   •  Forbidden  classes:   – PdfGraphics2D:  removed   – java.awt,  java.nio,...  references:  removed   – java.awt.Color:  com.itextpdf.text.BaseColor   •  Reduced  version  based  on  iText  5.0.7  
  • 6.
  • 7. Lessons  learned   •  PDF  creaBon  on  Android  is  as  easy  as  PDF   creaBon  in  a  “normal”  Java  applicaBon.   •  PDF  viewers  on  Android  support  only  a   limited  subset  of  PDF  funcBonality:   – No  annotaBons,  such  as  links,  form  fields,...   – No  cool  stuff,  such  as  portable  collecBons,...   •  Security:   – Problems  with  BouncyCastle   – Problems  connecBng  to  smartcard  reader  
  • 8. Let’s  make  an  Android  port   •  Forbidden  classes:   – PdfGraphics2D:  removed   – java.awt,  java.nio,...  references:  replaced   – java.awt.Color:  com.itextpdf.text.BaseColor   – java.awt.*:  com.itextpdf.awt.*   •  Security:  BouncyCastle  problems   – Use  SpongyCastle  instead   •  Full  version  based  on  5.2.1-­‐SNAPSHOT  
  • 9. We  have  a  port  for  GAE!   Major  difference:  no  access  to  a  file   system!   •  You  can’t  write  to  a  file   – Use  a  ByteArrayOutputStream  instead   •  Need  a  different  way  to  access  resources   – Fonts:  create  with  byte[]   – Images:  create  with  byte[]   – PDFs:  create  a  PdfReader  with  byte[]  
  • 12.
  • 13.
  • 14.
  • 15. Filled  out,  then  signed  
  • 16. Lessons  learned   •  PDF  creaBon  on  mobile  devices:   –  OK  for  private  data   –  Normally,  you’ll  create  documents  in  the  cloud   •  PDF  manipulaBon:   –  Document  as  data  container   –  Can  be  used  to  sign  documents!   •  Security:   –  It  would  be  cool  if  we  could  connect  to  a   smartcard  reader  
  • 17. On  our  roadmap   •  Demo  Google  App  Engine   – Google  AnalyBcs  +  Google  Charts   •  Demo  Heroku   – Watermarker   •  Demo  CloudFoundry   – ???