Click here to Skip to main content
13,357,530 members (68,461 online)
Click here to Skip to main content
Add your own
alternative version


228 bookmarked
Posted 17 Apr 2005


, 22 Apr 2005
Rate this:
Please Sign up or sign in to vote.
A utility for bulk scanning, converting the scanned pages to PDF and burning them on CD/DVD for archiving.

Figure 1


Several months ago, one of my clients asked me for creating a simple utility for his bulk scanning process. Also he wanted to save the scanned documents into PDF and then burn them on CD/DVD for archiving.

After some research on the Net, I decided to combine various free and open source libraries. Here is list of them:

  1. PDFLib Lite version. Please read the license carefully. You can use the library for personal usage only, not commercial.
  2. Nero Burning CD/DVD SDK/API. Please read the license carefully.
  3. CxImage lmaging toolkit. Thanks to Davide Pizzolato for sharing his knowledge and efforts.
  4. TWAIN C++ wrapper. Thanks to Rajiv Ramachandran for his article.

Scan2PDF Application

The program is very simple to use. I created a wizard style application that anyone can work with it very easily. Most of the task will be done by program itself and the user only sets the configuration. The above figure shows the first screen of the wizard.

The second screen of wizard asks the user for entering a project name. The application should scan bulk of images, converts scanned images to PDF then burn all PDFs in CD/DVD. However if in middle of scanning/converting process, user decides to leave his desk, what happens. The wizard solves this. Just scan your documents, save them into PDF and whenever you want, you can save your project (going to last page of wizard and click on Finish). After returning, you can open your previous saved projects. The combo box of second page of wizard shows all of projects. See figure 2 for more information.

Figure 2

This is not a tutorial of how to create such kind of this application. But you can take a look at source code and learn by yourself. Also both PDFLib and Nero SDK have an extensive documentation on how to use the libraries. For having some idea of how you can use PDFLib, my other article Text2PDF is another good starting point.

OK, I use CxImage library for creating TIFF files on the fly. You can modify the code to create JPEG files (the PDFLib supports both formats). For scanning purposes, I use the C++ TWAIN wrapper written by Rajiv. Both of articles have good examples of how to employ the code.

Just select your scanner source, click on "Scan New Documents" and after several scans to convert all the scanned documents into PDF, click on "Convert To PDF" button. The progress bar will show progress of converting. After creating the PDF, by clicking on "Scan New Documents" and then "Convert To PDF", you will have separate PDF file.

Figure 3

If you want to know which documents were scanned by you, just click on "Scanned Documents". A dialog will be appear and shows list of PDFs.

Figure 4 shows the next step of wizard. The combo box shows list of available CD Drives including your CD Burner. You have the option for burning the CD or simulate the burning process. If you want to create an image of CD (such as ISO), I have written some code for you, but commented it. You can uncomment the codes and create your own CD image of scanned/PDF documents.

Figure 4

The last step is very simple to use. You have two options. One for launching the wizard again for another wizard and one for deleting the current project (and its PDFs) as shown in Figure 5.

Figure 5

I hope this utility becomes useful for someone and also many people can benefits from it or its source code.



This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

A. Riazi
CEO Misbah3Com
Iran (Islamic Republic of) Iran (Islamic Republic of)
I was born in Shiraz, a very beautiful famous city in Iran. I started programming when I was 12 years old with GWBASIC. Since now, I worked with various programming languages from Basic, Foxpro, C/C++, Visual Basic, Pascal to MATLAB and now Visual C++.
I graduated from Iran University of Science & Technology in Communication Eng., and now work as a system programmer for a telecommunication industry.
I wrote several programs and drivers for Synthesizers, Power Amplifiers, GPIB, GPS devices, Radio cards, Data Acqusition cards and so many related devices.
I'm author of several books like Learning C (primary and advanced), Learning Visual Basic, API application for VB, Teach Yourself Object Oriented Programming (OOP) and etc.
I'm winner of January, May, August 2003 and April 2005 best article of month competetion, my articles are:

You can see list of my articles, by clicking here

You may also be interested in...

Comments and Discussions

GeneralExcellent! Pin
Professor C++29-Apr-05 0:29
memberProfessor C++29-Apr-05 0:29 
GeneralRe: Excellent! Pin
Big Al R3-May-05 21:29
memberBig Al R3-May-05 21:29 
GeneralRe: Excellent! Pin
A. Riazi5-May-05 7:21
memberA. Riazi5-May-05 7:21 
GeneralRe: Excellent! Pin
markgreville17-May-05 2:00
membermarkgreville17-May-05 2:00 
GeneralRe: Excellent! Pin
A. Riazi17-May-05 2:06
memberA. Riazi17-May-05 2:06 
GeneralRe: Excellent! Pin
markgreville17-May-05 2:09
membermarkgreville17-May-05 2:09 
GeneralRe: Excellent! Pin
A. Riazi17-May-05 2:12
memberA. Riazi17-May-05 2:12 
GeneralRe: Excellent! Pin
KW-Rix20-May-05 5:43
memberKW-Rix20-May-05 5:43 
Add My 5 More as as well !!

Well Done !! ^_^


Generaldemo project Scan2PDF Pin
mpontes22-Apr-05 9:24
membermpontes22-Apr-05 9:24 
GeneralRe: demo project Scan2PDF Pin
A. Riazi22-Apr-05 21:18
memberA. Riazi22-Apr-05 21:18 
GeneralDemo .ZIP incomplete Pin
sward200322-Apr-05 3:50
membersward200322-Apr-05 3:50 
GeneralRe: Demo .ZIP incomplete the zip file is corrupted Pin
avnersimon22-Apr-05 10:00
memberavnersimon22-Apr-05 10:00 
GeneralRe: Demo .ZIP incomplete the zip file is corrupted Pin
A. Riazi22-Apr-05 21:18
memberA. Riazi22-Apr-05 21:18 
Generalis the source of cximage.dll included in the priject ? Pin
avnersimon23-Apr-05 1:29
memberavnersimon23-Apr-05 1:29 
GeneralRe: is the source of cximage.dll included in the priject ? Pin
A. Riazi23-Apr-05 1:44
memberA. Riazi23-Apr-05 1:44 
GeneralRe: thank you Pin
avnersimon23-Apr-05 1:51
memberavnersimon23-Apr-05 1:51 
GeneralRe: is the source of cximage.dll included in the priject ? Pin
Yaroslav Sterkhov1-Aug-05 0:37
memberYaroslav Sterkhov1-Aug-05 0:37 
QuestionDotNet Version? Pin
sandy@asman.com22-Apr-05 2:59
membersandy@asman.com22-Apr-05 2:59 
AnswerRe: DotNet Version? Pin
A. Riazi22-Apr-05 6:28
memberA. Riazi22-Apr-05 6:28 
GeneralRe: DotNet Version? Pin
sandy@asman.com22-Apr-05 7:01
membersandy@asman.com22-Apr-05 7:01 
GeneralRe: DotNet Version? Pin
A. Riazi22-Apr-05 21:17
memberA. Riazi22-Apr-05 21:17 
GeneralRe: DotNet Version? Pin
levon chang22-Apr-05 22:45
susslevon chang22-Apr-05 22:45 
GeneralRe: DotNet Version? Pin
sides_dale9-May-05 15:56
membersides_dale9-May-05 15:56 
GeneralDownload Nero SDK - 3.57 MB Pin
avnersimon21-Apr-05 8:43
memberavnersimon21-Apr-05 8:43 
GeneralRe: Download Nero SDK - 3.57 MB Pin
JohnTheViking21-Apr-05 23:23
memberJohnTheViking21-Apr-05 23:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.180111.1 | Last Updated 23 Apr 2005
Article Copyright 2005 by A. Riazi
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid