Tải bản đầy đủ (.pdf) (74 trang)

Nghiên cứu công nghệ số hóa và tạo lập chỉ số trong hệ quản trị nội dung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.94 MB, 74 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ HÕA

NGHIÊN CỨU CÔNG NGHỆ SỐ HÓA VÀ TẠO LẬP CHỈ SỐ
TRONG HỆ QUẢN TRỊ NỘI DUNG

LUẬN VĂN THẠC SĨ

Hà Nội - 2013


ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ HÕA

NGHIÊN CỨU CÔNG NGHỆ SỐ HÓA VÀ TẠO LẬP CHỈ SỐ
TRONG HỆ QUẢN TRỊ NỘI DUNG

Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Trần Minh


Hà Nội - 2013


1

LỜI CẢM ƠN

Trước tiên tôi xin bày tỏ lòng biết ơn sâu sắc tới TS. Trần Minh, Phó viện
trưởng Viện công nghiệp phần mềm và nội dung số Việt Nam. Trong thời gian làm
luận văn tốt nghiệp, thầy đã dành nhiều thời gian quí báu và tận tình chỉ bảo, hướng
dẫn tôi trong việc nghiên cứu, thực hiện luận văn.
Tôi xin được cảm ơn các thầy giáo, cô giáo đã giảng dạy tôi trong quá trình học
tập và làm luận văn. Các thầy cô đã giúp tôi hiểu thấu đáo hơn lĩnh vực mà mình
nghiên cứu để có thể vận dụng những kiến thức đó vào trong công tác của mình.
Xin cảm ơn bạn bè, đồng nghiệp đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ
tôi trong suốt quá trình học tập và nghiên cứu để hoàn thành bản luận văn tốt nghiệp
này.

Hà Nội, tháng 12 năm 2013
Học viên thực hiện

Nguyễn Thị Hòa


2

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, đây là kết quả nghiên cứu của tôi trong đó có sự giúp đỡ
rất lớn của thầy hướng dẫn và các đồng nghiệp ở trường Đại học Hải Dương. Các số

liệu kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất
kỳ công trình nghiên cứu nào khác.
Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đã được
liệt kê tại phần tài liệu tham khảo ở cuối luận văn.

Hà Nội, tháng 12 năm 2013
Học viên thực hiện

Nguyễn Thị Hòa


3

MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT .............................................................................. 5
DANH SÁCH BẢNG ...................................................................................................... 6
DANH SÁCH HÌNH VẼ ................................................................................................ 7
MỞ ĐẦU ......................................................................................................................... 9
Chương 1. PHÂN TÍCH QUÁ TRÌNH SỐ HÓA........................................................ 11
1.1. Công nghệ số hóa ................................................................................................ 11
1.1.1. Khái niệm...................................................................................................... 11
1.1.2. Tại sao phải số hóa dữ liệu ........................................................................... 11
1.1.3. Ưu điểm và Hạn chế ..................................................................................... 11
1.1.4. Quá trình số hóa ............................................................................................ 12
1.2. Công nghệ mã nguồn mở trong sao chụp tài liệu ............................................... 13
1.2.1. Giới thiệu TWAIN và thư viện Dynamic .Net TWAIN ............................... 13
1.2.2. Giới thiệu thư viện SANE ............................................................................ 17
Chương 2. LẬP METADATA VÀ CHỈ MỤC NGƯỢC ĐỂ LƯU TRỮ VÀ TÌM
KIẾM ............................................................................................................................. 35
2.1. Cơ sở tạo lập........................................................................................................ 35

2.2. Metadata tạo lập (xác thực) ................................................................................. 36
2.3. Metadata tìm kiếm (Dublin Core) ....................................................................... 36
2.3.1. Tạo lập metadata ........................................................................................... 37
2.3.2. Lựa chọn chuẩn dữ liệu đặc tả ...................................................................... 37
2.4. Phương pháp lập chỉ mục ngược để tìm kiếm tài liệu ........................................ 43
2.4.1. Đánh chỉ mục ................................................................................................ 44
2.4.2. Truy vấn theo nhóm từ.................................................................................. 48
2.5. GreenStone trong tạo lập chỉ mục ....................................................................... 49
2.5.1. Tổng quan về GreenStone ............................................................................ 49
2.5.2. Quá trình xây dựng bộ sưu tập...................................................................... 55
Chương 3. ỨNG DỤNG THỬ NGHIỆM .................................................................... 56
3.1. Bài toán ứng dụng ............................................................................................... 56
3.1.1. Yêu cầu thực tế ............................................................................................. 56
3.1.2. Bài toán ứng dụng ......................................................................................... 56
3.2. Ứng dụng thử nghiệm ......................................................................................... 57


4

3.2.1. Ứng dụng scan văn bản................................................................................. 57
3.2.2. Tạo bộ văn bản lưu trữ với GLI (sau đây gọi chung là bộ sưu tập) ............. 59
3.3.3. Một số giao diện trang lưu trữ và tìm kiếm văn bản .................................... 64
3.3. Đánh giá .............................................................................................................. 66
KẾT LUẬN.................................................................................................................... 67
TÀI LIỆU THAM KHẢO ............................................................................................. 68
PHỤ LỤC: Các xử lý trong chương trình Scan văn bản ........................................... 69


5


DANH MỤC CÁC CHỮ VIẾT TẮT

Từ viết tắt

Ý nghĩa

Giải thích tiếng Việt

API

Application Programming Interface

CCVC

Công chức viên chức

CNTT

Công nghệ thông tin

GLI

GreenStone Librarian Interface

GNU

GNU's Not Unix

SANE


Scanner Access Now Easy

Truy cập máy quét dễ dàng

XML

eXtensible Markup Language

Ngôn ngữ đánh dấu mở rộng

Giao diện lập trình ứng dụng

Giao
diện
GreenStone

thư

viện


6

DANH SÁCH BẢNG

Bảng 1.1: Mã trạng thái (Status Codes) ............................................................. 21
Bảng 1.6: Giá trị và ý nghĩa của SANE_ACTION ............................................ 27
Bảng 2.1: Các thành tố đặc tả dữ liệu Dublin Core ............................................ 39
Bảng 2.2: Bảng danh sách các Plugin ................................................................ 51
Bảng 2.3: Bảng các tên thành phần hiển thị trên trang web ............................... 55



7

DANH SÁCH HÌNH VẼ
Hình 1.1: Mô hình tổng quan hệ thống số hóa tài liệu ....................................... 12
Hình 1.2: Các yếu tố của TWAIN ...................................................................... 13
Hình 1.4: Quá trình thu thập dữ liệu .................................................................. 14
Hình 1.6: Dynamic .Net TWAIN trong Microsoft Visual Studio .Net .............. 17
Hình 1.7: Khung chương trình ........................................................................... 32
Hình 1.8: Thuộc tính vùng quét (Scan area options).......................................... 34
Hình 2.1: Mô hình thực hiện một nghiệp vụ hành chính. .................................. 35
Hình 2.2: Sơ đồ chuyển đổi một văn bản gốc vào hệ thống tin học. ................. 36
Hình 2.3: Danh sách các posting cho từ Brutus, Caesar, Calpurnia .................. 44
Hình 2.4: Quá trình xây dựng các token ............................................................ 45
Hình 2.5: Tạo các token từ Tài liệu 1, Tài liệu 2 ............................................... 45
Hình 2.6: Sắp xếp theo từ chỉ mục ..................................................................... 46
Hình 2.7: Dictionary và Postings ....................................................................... 47
Hình 2.8: Kết quả truy vấn hai từ Brutus, Caesar .............................................. 48
Hình 2.10: Tài liệu được liệt kê theo từng vùng alphabet .................................. 54
Hình 3.1: Chế độ quét 1-bit BW......................................................................... 58
Hình 3.2: Chế độ quét 8-bit Gray ....................................................................... 58
Hình 3.3: Chế độ quét 24-bit RGB ..................................................................... 59
Hình 3.4: Tạo mới bộ sưu tập ............................................................................. 60
Hình 3.5: Chọn tài liệu cho bộ sưu tập ............................................................... 60
Hình 3.6: Biên mục tài liệu theo chuẩn Dublin Core ......................................... 61
Hình 3.7: Lựa chọn Plugin cho tài liệu .............................................................. 61
Hình 3.8: Chỉ mục tìm kiếm ............................................................................... 62
Hình 3.9: Thêm chỉ mục tìm kiếm mới .............................................................. 62
Hình 3.10: Tạo nút tìm kiếm mới ....................................................................... 63

Hình 3.11: Xây dựng bộ sưu tập ........................................................................ 63
Hình 3.12: Định dạng Email, ảnh hiển thị. ......................................................... 63
Hình 3.13: Các thư mục chứa file tài liệu và file đặc tả tương ứng (XML)....... 64


8

Hình 3.14: Giao diện giới thiệu .......................................................................... 64
Hình 3.15: Tìm kiếm theo các tùy chọn ............................................................. 65
Hình 3.16: Tìm kiếm theo tên tệp tin ................................................................. 65
Hình 3.17: Tìm kiếm theo thể loại ..................................................................... 65
Hình 3.18: Tìm kiếm theo thời gian ................................................................... 66


9

MỞ ĐẦU
Lý do chọn đề tài
Hiện nay công tác quản lý nhà nước tại các cơ quan các cấp đang phát sinh một
số lượng lớn văn bản bằng giấy tờ hàng ngày cần được xử lý, chuyển giao và lưu trữ.
Ứng dụng tin học trong quản lý hành chính đã được triển khai, nhiều phần mềm ứng
dụng đã phát huy hiệu quả tích cực, nâng cao hiệu suất làm việc cho cơ quan, tổ chức
và dần trở thành các công cụ không thể thiếu trong các nghiệp vụ hành chính của mỗi
cơ quan, tổ chức. Phần mềm quản lý văn bản, điều hành tác nghiệp là một trong số
những ứng dụng được triển khai rộng khắp các cơ quan, tổ chức hành chính, tuy nhiên
khi triển khai đại trà các ứng dụng và kết nối, trao đổi dữ liệu giữa các cơ quan, đơn vị
thì các phần mềm này bắt đầu xuất hiện không ít các bất cập. Một kết quả khảo sát tại
các đơn vị cấp huyện của tỉnh Hải Dương cho thấy, hầu hết các đơn vị đều được triển
khai và đang sử dụng có hiệu quả hệ thống phần mềm phục vụ quản lý văn bản, tuy
nhiên theo đa số các cán bộ được phỏng vấn đều có ý kiến các cơ quan, tổ chức đều

khó trao đổi được với nhau bằng văn bản điện tử.
Nói rộng ra, ngoài những ưu điểm không thể phủ nhận, còn hiện hữu một số
trục trặc và bất cập trong hầu hết các hệ thống tin học phục vụ quản lý hành chính. Các
bất cập nêu trên xuất hiện như một đặc điểm chung trong các hệ thống tin học hiện nay
đang triển khai ứng dụng tại các cơ quan, tổ chức hành chính. Điểm lưu ý là các bất
cập nêu trên lại không xảy ra với hệ thống hành chính truyền thống. Câu hỏi đặt ra bản
chất các bất cập nêu trên là gì, hệ thống tin học hiện nay thiết kế đã phù hợp với các
yêu cầu của hệ thống hành chính chưa?
Có nhiều nguyên nhân giải thích các bất cập tại sao các phần mềm ứng dụng
cho các cơ quan, tổ chức chưa phát huy hết hiệu quả tại các cơ quan hành chính, nhiều
trường hợp phần mềm chưa đáp ứng được yêu cầu người sử dụng mà nhiều công trình
nghiên cứu đã chỉ ra: Trình độ người sử dụng, sự quan tâm của người đứng đầu cơ
quan, tài chính, mức độ thân thiện của phần mềm, thói quen người sử dụng… Các
nguyên nhân này dường như không đề cập đến phân tích hệ thống thông tin được thiết
kế và triển khai cho các cơ quan, tổ chức nhà nước đã áp dụng yêu cầu của người sử
dụng là các cán bộ hành chính hay chưa. Nói cách khác, hệ thống thông tin đã là một
công cụ làm việc hành chính hay chưa.
Hệ thống thông tin/ cơ sở dữ liệu/ phần mềm phục vụ nghiệp vụ hành chính của
một cơ quan (như quản lý, lưu trữ, xử lý, trao đổi văn bản…) về bản chất là những
công cụ được xem là một phần của hoạt động nghiệp vụ hành chính. Do đó phải tuân
thủ và hoạt động như một thành phần của hệ thống hành chính, phải đáp ứng đầy đủ
các qui định tại các văn bản pháp luật và các qui định do cơ quan có thẩm quyền ban
hành.
Để giải quyết các bất cập nêu trên tác giả đã nghiên cứu và nhận thấy rằng công


10

nghệ số hóa và tạo lập chỉ mục sẽ giúp cho các cơ quan tổ chức quản lý và trao đổi văn
bản điện tử một cách dễ dàng hơn và đặc biệt tuân thủ các quy phạm pháp luật về hành

chính.
Qua thực tế tại trường Đại học Hải Dương tác giả sẽ đưa ra mô hình quản lý,
lưu trữ và trao đổi văn bản của Nhà trường với kết quả đã nghiên cứu được.
Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Công nghệ số hóa văn bản TWAIN, SANE (Scanner
Access Now Easy), ứng dụng Greenstone trong việc lưu trữ và tạo lập chỉ mục.
Phạm vi nghiên cứu: Luận văn tập trung nghiên cứu cơ sở xử lý, lưu trữ và
chuyển giao văn bản tại trường Đại học Hải Dương bằng công nghệ số hóa văn bản
TWAIN, SANE và tạo lập chỉ mục sử dụng ứng dụng Greenstone.
Kết cấu của luận văn
Phần còn lại của luận văn có cấu trúc như sau:
Chƣơng 1: Phân tích quá trình số hóa. Chương này trình bày về khái niệm số
hóa và tạo lập chỉ số, lý do tại sao cần số hóa, các ưu điểm, nhược điểm của việc số
hóa dữ liệu, và đặc biệt là trình bày về công nghệ mã nguồn mở trong sao chụp tài liệu
(thư viện Dynamic .Net TWAIN, thư viện mã nguồn mở SANE).
Chƣơng 2: Lập metadata và chỉ mục ngƣợc để lƣu trữ và tìm kiếm.
Chương này trình bày hai giai đoạn tạo lập metadata, metadata tạo lập (mang tính xác
thực văn bản), metadata mô tả nội dung (Dublin Core - phục vụ trong quá trình tìm
kiếm văn bản), nghiên cứu phương pháp tạo lập chỉ mục ngược để lưu trữ và tìm kiếm.
Chƣơng 3: Ứng dụng thử nghiệm. Chương này sẽ đưa ra ứng dụng scan văn
bản, ứng dụng Greenstone trong việc lưu trữ, tạo lập chỉ mục văn bản đã được số hóa
tại trường Đại học Hải Dương minh họa cho các nghiên cứu ở chương 1 và chương 2.


11

Chƣơng 1. PHÂN TÍCH QUÁ TRÌNH SỐ HÓA
1.1. Công nghệ số hóa
1.1.1. Khái niệm
Thông thường, các dữ liệu dạng chữ, hình ảnh, âm thanh… [11] sử dụng trên

máy tính và được máy tính nhận biết đúng định dạng, được gọi chung là dữ liệu số.
Quá trình chuyển các dạng dữ liệu truyền thống như các bản viết tay, bản in trên giấy,
hình ảnh… sang chuẩn dữ liệu trên máy tính và được máy tính nhận biết được gọi là số
hoá dữ liệu.
Như vậy, số hoá dữ liệu [11] là hình thức chuyển đổi các dữ liệu truyền thống
bên ngoài thành dạng dữ liệu số mà máy tính có thể hiểu được.
1.1.2. Tại sao phải số hóa dữ liệu
Hãy tưởng tường rằng phải mất bao nhiêu giấy tờ và không gian để lưu trữ kho
kiến thức khổng lồ của nhân loại ngày một nhiều, hơn nữa việc bảo quản và phạm vi
sử dụng bị hạn chế. Do vậy bắt buộc chúng ta phải nghĩ đến giải pháp số hóa dữ liệu.
Việc số hóa dữ liệu sẽ giúp việc lưu trữ, truy xuất, chia sẻ, tìm kiếm thông tin một cách
nhanh chóng và dễ dàng nhất [11].
1.1.3. Ưu điểm và Hạn chế
a. Ƣu điểm [11]:
Giúp việc lưu trữ, truy xuất, chia sẻ, tìm kiếm thông tin một cách dễ dàng. Ưu
điểm này bao gồm tổng hoà các thuận tiện trong công tác quản lý, bảo quản, bảo vệ,
khai thác và sử dụng tài liệu lưu trữ với một ngân hàng dữ liệu số;
Linh hoạt trong việc chuyển đổi sang các loại dữ liệu số khác nhau. Sự chuyển
đổi phổ biến nhất là chuyển đổi định dạng các file tài liệu. Ví dụ, ta đang có một file
word, có thể chuyển sang định dạng PDF nhờ một chương trình ứng dụng để chuyển
đổi nó. Ứng dụng đó có thể là một chương trình độc lập, hoặc là một kỹ thuật nhúng
tích hợp vào chương trình word, hoặc là một ứng dụng on line... Dữ liệu sau khi
chuyển đổi sẽ được sử dụng linh hoạt hơn;
Giảm chi phí tối đa cho việc quản lý tài liệu lưu trữ. Chúng ta hiểu tiết kiệm
không gian bảo quản tài liệu lưu trữ một cách tương đối, vì theo quy định của Luật lưu
trữ, tài liệu lưu trữ đã được số hóa, vẫn phải bảo quản an toàn tài liệu bản gốc;
Có khả năng chỉnh sửa và tái sử dụng dữ liệu. Ở thuận lợi này ta cần hiểu “khả
năng chỉnh sửa” theo đúng nguyên tắc quản lý tài liệu lưu trữ là không được chỉnh sửa
nội dung tài liệu, mà chỉ chỉnh sửa chất lượng mang tin, như tài liệu bị mờ, bị hư hỏng
nặng cần chỉnh sửa.

b. Hạn chế [11]:
Khi bắt đầu xây dựng một đề án số hóa tài liệu lưu trữ, cần phải đầu tư ban đầu


12

về công nghệ, cơ sở hạ tầng công nghệ thông tin và các thiết bị khác, ví dụ, cần phải
đầu tư mua sắm, hoặc thuê từng phần các thiết bị phần cứng như máy tính, máy in,
máy quét ảnh và các chương trình phần mềm để quản lý và tra tìm tài liệu. Khi đã có
đầy đủ các thiết bị phần cứng, phần mềm, việc thực hiện số hóa tài liệu có thể thuê các
cơ quan chuyên môn thực hiện. Ngoài ra, điều rất quan trọng là phải đầu tư cho yêu
cầu đào tạo con người theo các mức độ khác nhau như đào tạo công chức làm quản lý,
công chức, viên chức tác nghiệp và những cán bộ kỹ thuật, cán bộ chuyên tin.
Dữ liệu số hóa dễ bị sao chép và sửa đổi trái phép. Điều này có thể khắc phục
giản đơn đối với những người chuyên làm công tác quản trị mạng, nhưng không giản
đơn đối với toàn bộ công chức, viên chức của cả một cơ quan, tổ chức có sử dụng cơ
sở dữ liệu số hóa.
Việc triển khai sử dụng gặp nhiều khó khăn do phải thực hiện training đồng bộ
và có hệ thống. Ngoài ra việc bảo mật dữ liệu cũng là một thách thức lớn.
1.1.4. Quá trình số hóa
Mô hình tổng quan của hệ thống số hóa tài liệu được mô tả ở hình 1.1.

Hình 1.1: Mô hình tổng quan hệ thống số hóa tài liệu
Hình 1.1 thể hiện quá trình số hóa [11]: văn bản giấy được quét qua máy scan,
kết quả là văn bản đó sẽ được lưu trữ dưới dạng một file ảnh. Tuy nhiên đó là một thao
tác bước đầu, để phục vụ trong quá trình lưu trữ, tìm kiếm và trao đổi văn bản đó thì
ngoài file ảnh ta còn phải thiết lập một số thuộc tính đi kèm file ảnh để thể hiện rõ nội


13


dung văn bản như thế nào.
Việc scan văn bản sẽ được nghiên cứu thông qua TWAIN, SANE - công nghệ
mã nguồn mở trong sao chụp tài liệu. Vấn đề này sẽ được đề cập trong phần 1.2.
Các thuộc tính đi kèm file ảnh quét văn bản được xây dựng theo quy chuẩn Việt
Nam về dữ liệu đặc tả cũng được dựa trên chuẩn Dublin Core (Công văn 839 ngày
29/9/2011 – Bộ thông tin và truyền thông) [1]. Vấn đề này sẽ được trình bày rõ trong
chương này.
Giải pháp số hóa tài liệu tổng thể là sự kết hợp thông minh giữa hệ thống máy
quét, hệ thống lập chỉ mục, tách bộ (điển hình là phần mềm Kodak Capture Pro) và hệ
thống quản lý khai thác tài liệu (mà hiện nay thông dụng là giải pháp quản lý tài liệu
Docuflo).
1.2. Công nghệ mã nguồn mở trong sao chụp tài liệu
1.2.1. Giới thiệu TWAIN và thư viện Dynamic .Net TWAIN
1.2.1.1. TWAIN
 Tổng quan về TWAIN
TWAIN [7, 12] định nghĩa một phần mềm giao thức chuẩn và giao diện lập
trình ứng dụng (API) để giao tiếp giữa các ứng dụng phần mềm và các thiết bị thu
nhận hình ảnh (nguồn dữ liệu).
Bốn yếu tố quan trọng trong TWAIN:

Hình 1.2: Các yếu tố của TWAIN
Hình 1.2 mô tả các yếu tố của TWAIN bao gồm:
Phần mềm ứng dụng: Một ứng dụng sử dụng giao thức TWAIN để thu được
hình ảnh, fax,….
Chương trình quản lý nguồn: Phần mềm này quản lý sự tương tác giữa các ứng
dụng và nguồn. Mã này được cung cấp bởi tổ chức TWAIN.
Nguồn dữ liệu: TWAIN điều khiển phần cứng phù hợp. Phần mềm này thường
được cài đặt khi trình điều khiển phần cứng được cài đặt.
Các phần cứng: Máy Scan, Camera,...



14

 Giao diện ngƣời dùng TWAIN
Khi một ứng dụng sử dụng TWAIN thu được dữ liệu, quá trình thu nhận dữ liệu
có thể được hiển thị cho người dùng của ứng dụng trong ba lĩnh vực sau [7, 12]:

Hình 1.4: Quá trình thu thập dữ liệu
Hình 1.4 thể hiện giao diện người dùng TWAIN, tương ứng với các yếu tố của
TWAIN là các thành phần hiển thị cho người dùng, các thành phần đó bao gồm:
Các ứng dụng: Người sử dụng cần chọn thiết bị mà từ đó họ muốn thu thập các
dữ liệu. TWAIN khuyến cáo mạnh mẽ các nhà phát triển ứng dụng thêm hai lựa chọn
để trình đơn File của họ. Lựa chọn các chức năng tương ứng để thực hiện chương
trình.
Quản lý nguồn: Khi người dùng chọn tùy chọn Select Source, yêu cầu ứng dụng
quản lý Source hiển thị hộp thoại Select Source của nó. Danh sách này liệt kê tất cả
các thiết bị có sẵn và cho phép người sử dụng chọn một thiết bị.
Nguồn: Mọi TWAIN tuân thủ Source cung cấp một giao diện người dùng cụ thể
cho thiết bị cụ thể của nó. Khi người sử dụng ứng dụng chọn tùy chọn Thu thập,
giao diện người dùng TWAIN của Source có thể được hiển thị.
1.2.1.2. Thư viện Dynamic .Net TWAIN
 Dynamic .Net TWAIN là gì?
Dynamic .Net TWAIN [8] là một thành phần .Net cho phép bạn thu nhận hình
ảnh từ bất kỳ thiết bị TWAIN tương thích. Với thiết kế giao diện cẩn thận, và xây
dựng trong chế độ tự động. Dynamic .Net TWAIN rất dễ sử dụng, bạn có thể thực hiện
TWAIN trong một vài dòng mã. Đồng thời Dynamic .Net TWAIN rất mạnh, nó tương
thích với TWAIN V2.1, và cung cấp ba chế độ truyền tải hình ảnh và nhiều tính năng



15

khác.
 Trạng thái TWAIN trong Dynamic .Net TWAIN
Dynamic .Net TWAIN [8] làm giảm độ phức tạp của các trạng thái TWAIN
chuẩn.
Trạng thái 2 được di chuyển. Gọi OpenSourceManager() chuyển tới trạng thái 3. Gọi
OpenSource() chuyển tới trạng thái 4. Gọi EnableSource() hoặc AcquireImage()
chuyển tới trạng thái 5. Trạng thái 6 và trạng thái 7 là ẩn, chỉ sự kiện
OnPreAllTransfers,
OnPreTransfer,
OnPostTransfer,
OnPostAllTransfers,
OnTransferError hoặc OnTransferCancelled bị loại bỏ.
Hơn nữa, Dynamic .Net TWAIN được xây dựng trên chế độ Wizard. Với chế
độ này, việc chuyển trạng thái được quản lý một cách thông minh. Bạn có thể bỏ qua
sự tồn tại của các trạng thái. Ví dụ, nếu bạn gọi EnableSource() trực tiếp mà không gọi
OpenSource(), Dynamic .Net TWAIN sẽ gọi tất cả hàm cần thiết để chuyển trạng thái
TWAIN tới trạng thái 5. Bạn cũng có thể thoát khỏi ứng dụng TWAIN không gọi
CloseSource() hoặc CloseSourceManager().
 Các phƣơng thức và thuộc tính của Dynamic .Net TWAIN trong ứng dụng
quét tài liệu.
Thuộc tính [8]:
SourceCount: Trả lại tổng số nguồn được cài đặt trong hệ thống. Đây là một
thuộc tính chỉ đọc, thời gian thực.
HowManyImagesInBuffer: Trả lại tổng số hình ảnh là trong bộ đệm. Đây là
một thuộc tính chỉ đọc, thời gian thực.
IfAppendImage: Trả về hoặc thiết lập tùy chọn chèn hoặc thêm hình ảnh quét
mới.
IfSaveAnnotations: Trả về hoặc thiết lập hoặc lưu trữ các chú thích tạo ra.

Thuộc tính chỉ áp dụng cho các tập tin PDF.
IfShowUI: Trả về hoặc thiết lập hoặc Source hiển thị giao diện người dùng.
IfDisableSourceAfterAcquire: Trả về hoặc thiết lập hoặc đóng Data Source
User Interface sau khi nhận tất cả các hình ảnh. Giá trị mặc định của thuộc tính này là
False.
PixelType: Trả về hoặc thiết lập các kiểu pixcel của hình ảnh thu nhận. Đây là
một thuộc tính thời gian thực.
BitDepth: Trả về hoặc thiết lập độ sâu bit cho giá trị hiện tại của thuộc tính
PixelType. Đây là thuộc tính thời gian thực.
Resolution: Trả về hoặc thiết lập độ phân giải hiện tại cho hình ảnh thu nhận.


16

Đây là thuộc tính thời gian thực.
IfFeederEnabled: Trả về hoặc thiết lập hoặc ADF (Automatic Document
Feeder) hiển thị. Đây là thuộc tính thời gian thực
IfAutoFeed: Trả về hoặc thiết lập hoặc Source hiển thị tài liệu xử lý tự động.
Đây là thuộc tính thời gian thực.
IfDuplexEnabled: Trả về hoặc thiết lập hoặc Source cung cấp quét 2 mặt. Nếu
đúng, máy scan sẽ quét cả 2 mặt của trang giấy, nếu không, máy scan sẽ chỉ quét một
mặt. Đây là thuộc tính thời gian thực.
Duplex: Trả về hoặc nguồn cung cấp 2 mặt. Nếu vậy, nó tiếp tục trả về mức của
Source cung cấp 2 mặt (một hoặc hai đường qua 2 mặt). Đây là thuộc tính chỉ đọc, thời
gian thực.
CurrentImageIndexInBuffer: Trả về hoặc thiết lập chỉ số hiện tại của hình ảnh
trong bộ đệm. Đây là thuộc tính thời gian thực.
Phương thức [8]:
OpenSourceManager(): Load và mở Data Source Manager
SourceNameItems: Mảng các tên nguồn

SelectSourceByIndex: Lựa chọn
SourceNameItems như nguồn hiện tại.

chỉ

số

nguồn

trong

thuộc

tính

OpenSource: Load Source xác định trong bộ nhớ chính và bắt đầu khởi tạo nó,
đặt Dynamic .Net TWAIN trong trạng thái Capability Negotiation. Nếu nguồn không
được xác định (no SelectSource() hoặc SelectSourceByIndex() được gọi), mở nguồn
mặc định.
SaveAsBMP: Lưu hình ảnh của một chỉ số xác định trọng bộ đệm như file
BMP.
SaveAsJPEG: Lưu hình ảnh của một chỉ số xác định trọng bộ đệm như file
JPEG.
SaveAsPNG: Lưu hình ảnh của một chỉ số xác định trọng bộ đệm như file
PNG.
SaveAsTIFF: Lưu hình ảnh của một chỉ số xác định trọng bộ đệm như file
TIFF.
SaveAsPDF: Lưu hình ảnh của một chỉ số xác định trọng bộ đệm như file PDF.
SaveAllAsMultiPageTIFF: Lưu tất cả các hình ảnh trong bộ đệm như một file
TIFF.

SaveAllAsPDF: Lưu tất cả các hình ảnh trong bộ đệm như một file PDF.


17

 Sử dụng Dynamic .Net TWAIN trong Microsoft Visual Studio .Net
Trước khi mở ứng dụng mẫu viết trên C# và VB.Net hãy tích hợp Dynamic
.Net TWAIN vào trong Visual Studio .Net đầu tiên.
Dưới đây là các bước tích hợp Dynamic .Net TWAIN vào trong .Net.
1. Khởi động Visual Studio .Net.
2. Từ menu Tool chọn Choose Toolbox Items.
3. Trong hộp thoại Choose Toolbox Items, chọn Browse, sau đó tìm đến
DynamicDotNetTWAIN.dll. Chọn OK để đóng hộp thoại.
4. Thành phần Dynamic .Net TWAIN có thể sử dụng trong .Net như các điều
khiển khác.

Hình 1.6: Dynamic .Net TWAIN trong Microsoft Visual Studio .Net
1.2.2. Giới thiệu thư viện SANE
Từ SANE [13] là viết tắt của "Scanner Access Now Easy" (Truy cập máy quét
dễ dàng) và là một giao diện lập trình ứng dụng (API) cung cấp các phương thức giao
tiếp một cách chuẩn hóa tới hàng loạt các máy quét đa dạng khác nhau (máy quét
phẳng, máy quét cầm tay, camera …). Giao diện lập trình ứng dụng SANE là một thư
viện mã nguồn mở theo giấy phép GNU, mã nguồn hiện tại được viết cho UNIX (bao
gồm cả GNU/Linux).
SANE là một giao diện máy quét vạn năng, có nghĩa là nó cho phép chỉ cần viết
một trình điều khiển trên mỗi thiết bị thu nhận hình ảnh chứ không cần phải viết một
trình điểu khiển cho mỗi một thiết bị + một ứng dụng. Ví dụ, nếu chúng ta có 3 ứng


18


dụng và 4 thiết bị, theo cách truyền thống, chúng ta phải viết 12 chương trình khác
nhau. Nhưng với SANE, con số này sẽ giảm xuống còn 7 chương trình (3 ứng dụng +
4 trình điều khiển). Với số lượng lớn các thiết bị và ứng dụng, chúng ta thấy số lượng
chương trình giảm được là rất đáng kể.
Với SANE, không chỉ rút ngắn được thời gian phát triển mà số lượng code
trùng lặp được giảm đáng kể. Thêm vào đó, SANE được thiết kế để nó có khả năng
triển khai các API trên mọi phần cứng ảo hoặc hệ điều hành.
Một ứng dụng mà sử dụng giao diện SANE được gọi là SANE frontend. Các
trình điều khiển của giao diện SANE được gọi là SANE backend. Meta backend quản
lý một hoặc nhiều các backend.
1.2.2.1. Môi trường SANE
SANE được định nghĩa như là một giao diện thư viện C có thể gọi được [13].
Việc truy cập các máy thiết bị quét thường bao gồm hai giai đoạn. Giai đoạn thứ nhất
là thiết lập hoặc truy vấn các thông số của máy quét. Giai đoạn hai là thu nhận một
hoặc nhiều hình ảnh từ máy quét.
Các thông số của thiết bị thường khác nhau với mỗi thiết bị, vì vậy SANE cung
cấp một giao diện chung cho phép các frontend dễ dàng cung cấp cho người dùng khả
năng truy cập tất cả các thông số mà không cần phải hiểu về mỗi hoặc tất cả các thông
số của thiết bị. Nguyên lý thiết kế được sử dụng ở đây là ánh xạ mỗi thông số của thiết
bị vào một SANE option. Một option là một một cặp tên/giá trị tự mô tả. Ví dụ, thông
số độ sáng (brightness) của một camera có thể được đại diện bởi một option được gọi
là brightness có giá trị là một số nguyên trong phạm vi từ 0 đến 255.
Với các option tự mô tả, một backend không cần phải quan tâm tới vấn đề biểu
diễn: backend chỉ đơn giản là cung cấp một danh sách các option mô tả tất cả các
thông số cho phép trong thiết bị. Tương tự, với frontend, cũng không cần quan tâm tới
ý nghĩa của mỗi option mà chỉ đơn giản là cung cấp các cách thức để biểu diễn và thay
đổi các option được định nghĩa bởi backend.
1.2.2.2. Giao diện lập trình ứng dụng (API) SANE [13]
Các kiểu dữ liệu

Các kiểu dữ liệu cơ bản (Base Type)
Tiêu chuẩn SANE chỉ dựa trên 2 kiểu dữ liệu cơ bản là SANE_Byte và
SANE_Word
typedef some-scalar-type SANE_Byte;
typedef some-scalar-type SANE_Word;
SANE_Byte có thể biểu diễn các giá trị trong khoảng từ 0 đến 255.
SANE_Word có thể biểu diển các giá trị sau:


19

Các giá trị logic SANE_FALSE và SANE_TRUE
Các số nguyên có dấu trong khoảng từ −231 . . . 231 − 1
Các số thực dấu phẩy tĩnh trong khoảng từ −32768 . . . 32767.9999 với độ phân
giải là 1/65536
Chứa 32 bits (cho một tập các bit)
Chú ý rằng, tiểu chuẩn SANE không định nghĩa kiểu dữ liệu C nào mà
SANE_Byte và SANE_Word được ánh xạ tới. Ví dụ, trên một số nền tảng,
SANE_Word có thể được ánh xạ tới số nguyên dài (long int), trong khi đó trên nền
tảng khác lại có thể được ánh xạ tới số nguyên (int).
Kiểu dữ liệu logic (Boolean Type)
SANE_Bool được sử dụng cho các biến có thể nhận một trong hai giá trị logic
SANE_FALSE và SANE_TRUE. Kiểu dữ liệu đầu được định nghĩa bằng 0, còn kiểu
còn lại được định nghĩa bằng 1. Khai báo C cho kiểu dữ liệu này như sau:
#define SANE_FALSE

0

#define SANE_TRUE


1

typedef SANE_Word SANE_Bool;
Chú ý rằng SANE_Bool chỉ đơn giản là khai báo lại của kiểu SANE_Word. Ví
thế, luôn có thể sử dụng kiểu dữ liệu SANE_Word thay cho kiểu dữ liệu này.
Kiểu dữ liệu số nguyên (Integer Type)
SANE_Int được dùng cho các biến có thể nhận các giá trị số nguyên trong
khoảng từ −231 . . . 231 − 1. Khai báo C của nó như sau:
typedef SANE_Word SANE_Int;
Chú ý rằng SANE_Int chỉ đơn giản là khai báo lại của kiểu SANE_Word. Vì
thế, luôn có thể sử dụng kiểu dữ liệu SANE_Word thay cho kiểu dữ liệu này.
Kiểu dữ liệu số thực dấu phẩy tĩnh (Fixed-point Type)
SANE_Fixed được dùng cho các biến có thể nhận các giá trị số thực dấu phẩy
tĩnh trong khoảng từ −32768 tới 32767.9999 với độ phân giải là 1/65535. Khai báo C
cho kiểu dữ liệu này là:
#define SANE_FIXED_SCALE_SHIFT 16
typedef SANE_Word SANE_Fixed;
Macro SANE_FIXED_SCALE_SHIFT trả lại vị trí của dấu phẩy tĩnh nhị phân,
giá trị này bằng 16 và cho ta độ phân giải 1/65536.
Chú ý rằng SANE_Fixed chỉ đơn giản là khai báo lại của kiểu SANE_Word. Ví
thế, luôn có thể sử dụng kiểu dữ liệu SANE_Word thay cho kiểu dữ liệu này.


20

Để cho thuận tiện, SANE cũng cung cấp 2 macro cho phép chuyển đổi các giá
trị dấu phẩy tĩnh sang các giá trị thực dấu phẩy động của C (C double floating point)
SANE_FIX(d): Trả lại giá trị SANE fixed-point lớn nhất mà nhỏ hơn giá trị
thực (double value) d. Nếu giá trị của d vượt quá phạm vi, giá trị undefined sẽ được
trả về.

SANE_UNFIX(w): Trả lại số thực gần nhất liên quan tới giá trị fixed-point w.
Kiểu dữ liệu văn bản (Text)
Kiểu dữ liệu ký tự - Character Type:
Kiểu dữ liệu SANE_Char biểu diễn một ký tự văn bản hoặc một biểu tượng.
Hiện tại, loại dữ liệu này được ánh xạ thẳng tới kiểu dữ liệu “char” của C (thường là
một byte). Bảng mã cho các ký tự này hiện tại cũng được định nghĩa cố định là bảng
mã ISO LATIN-1. Các phiên bản tiếp theo của SANE có thể sẽ ánh xạ loại dữ liệu này
tới các loại dữ liệu khác và sử dụng các bảng mã khác (nhiều hơn 1 byte) để có thể hỗ
trợ tính quốc tế hóa (đa ngôn ngữ).
typedef char SANE_Char;
Kiểu dữ liệu xây ký tự - String Type:
Kiểu dữ liệu SANE_String biểu diễn một xâu văn bản như là một chuỗi các giá
trị của kiểu dữ liệu “C char”. Ký tự “\0” (NUL) được dùng để đánh dấu kết thúc chuỗi.
typedef SANE_Char *SANE_String;
typedef const SANE_Char *SANE_String_Const;
Kiểu dữ liệu SANE_String_Const được cung cấp bởi SANE để cho phép khai
báo các xâu ký tự có nội dung không thay đổi. Chú ý rằng, trong ANSI C, khai báo:
const SANE_String str;
Được dùng để khai báo một con trỏ xâu là một hằng số (không phải là một con
trỏ xâu trỏ tới một hằng số)
Kiểu dữ liệu Scanner Handle (Scanner Handle Type)
Việc truy cập tới một máy quét được cung cấp thông qua một kiểu dữ liệu được
gọi là SANE_Handle. Khai báo C cho lại dữ liệu này như sau:
typedef void *SANE_Handle;
Loại dữ liệu này được khai báo như là một con trỏ rỗng (void pointer) và SANE
không yêu cầu giá trị của loại dữ liệu này phải là một giá trị con trỏ hợp lệ.
Kiểu dữ liệu trạng thái (Status Type)
Hầu hết các hoạt động của SANE trả lại một giá trị có kiểu dữ liệu
SANE_Status để xác định trạng thái hoàn thành của các hoạt động. Nếu một hoạt động



21

hoàn thành một cách thành công, SANE_STATUS_GOOD được trả lại. Trong trường
hợp có lỗi, một giá trị sẽ được trả về giúp xác định vấn đề. Danh sách đầy đủ các giá
trị của kiểu dữ liệu này được liệt kê trong bảng 1.1. Các giá trị này nên được dùng với
hàm sane_strstatus() để chuyển sang dạng dễ đọc hơn.
Bảng 1.1: Mã trạng thái (Status Codes)
Ký hiệu

Mô tả

SANE_STATUS GOOD

Hành động kết thúc thành công

SANE_STATUS UNSUPPORTED

Hành động không được hỗ trợ

SANE_STATUS_CANCELLED

Hành động bị hủy bỏ

SANE_STATUS_DEVICE_BUSY

Thiết bị đang bận - thử lại sau

SANE_STATUS_INVAL


Dữ liệu hoặc đối số không hợp lệ

SANE_STATUS_EOF

Không còn dữ liệu (end-of-file)

SANE_STATUS_JAMMED

Kẹt giấy tại bộ nạp

SANE_STATUS_NO_DOCS

Hết giấy tại bộ nạp

SANE_STATUS COVER OPEN

Nắp máy quét đang mở

SANE_STATUS_IO_ERROR

Lỗi trong quá trình xuất/nhập

SANE_STATUS_NO_MEM

Hết bộ nhớ

SANE_STATUS_ACCESS_DENIED

Từ chối truy cập vào tài nguyên


Kiểu dữ liệu mô tả thiết bị (Device Descriptor Type)
Mỗi một thiết bị SANE được đại diện bởi một cấu trúc dữ liệu được gọi là
SANE Device. Khai báo C cho loại dữ liệu này như sau:
typedef struct
{
SANE_String_Const name;
SANE_String_Const vendor;
SANE_String_Const model;
SANE_String_Const type;
}
SANE_Device;
Trường “name” chứa tên (duy nhất) của máy quét. Tên này sẽ được dùng làm


22

tham số khi hàm sane_open() được gọi. Định dạng của tên này hoàn toàn phụ thuộc
vào các backend. Điều bắt buộc duy nhất là tên phải là duy nhất trong tất cả các thiết
bị được hỗ trợ bởi backend và tên này phải là một xâu ký tự SANE hợp lệ. Để đơn
giản việc trình bày tên duy nhất này, độ dài của chúng không nên quá mức mà nên có
giữ độ dài của chúng dưới 32 ký tự.
Các trường còn lại của cấu trúc dữ liệu này cung cấp thêm các thông tin khác
của thiết bị như hãng sản xuất (vendor), model và loại thiết bị (type).
Vendor Strings

Type Strings

AGFA

Microtek


film scanner

Abaton

Minolta

flatbed scanner

Acer

Mitsubishi

frame grabber

Apple

Mustek

handheld scanner

Artec

NEC

multi-function peripheral

Avision

Nikon


sheetfed scanner

CANON

Plustek

still camera

Connectix

Polaroid

video camera

Epson

Relisys

virtual device

Fujitsu

Ricoh

Hewlett-Packard

Sharp

IBM


Siemens

Kodak

Tamarack

Lexmark

UMAX

Logitech

Noname

Chú ý rằng: giá trị “Noname” của trường vendor có thể được dùng cho các thiết
bị ảo (virtual devices)
Kiểu dữ liệu mô tả thuộc tính (Option Descriptor Type)
Các thuộc tính được dùng để điều khiển tất cả các hoạt động của thiết bị. Sức
mạnh của SANE_API bắt nguồn từ thực tế là hầu hết việc điều khiển thiết bị đều được
mô tả bởi các “mô tả thuộc tính” liên quan. Vì thế, một frontend có thể điều khiển một
máy quét một cách đơn giản thông qua các “mô tả thuộc tính” này.
Mô tả C của kiểu dữ liệu mô tả thuộc tính như sau:


23

typedef struct
{
SANE_String_Const name;

SANE_String_Const title;
SANE_String_Const desc;
SANE_Value_Type type;
SANE_Unit unit;
SANE_Int size;
SANE_Int cap;
SANE_Constraint_Type constraint_type;
union
{
const SANE_String_Const *string_list;
const SANE_Word *word_list;
const SANE_Range *range;
}
constraint;
}
SANE_Option_Descriptor;
Thuộc tính “Name”:
Thuộc tính tên (name) là một xâu ký tự xác định duy nhất cho một thuộc tính.
Tên này phải là duy nhất với mỗi thiết bị, tuy nhiên các tên của thuộc tính này không
cần phải là duy nhất trong tất cả các backend hay thiết bị. Tên thuộc tính chỉ được bao
gồm các ký tự chữ thường (a-z), các chữ số (0-9) và dấu gạch nối (-). Ký tự đầu tiên
phải là một ký tự chữ thường, không được là chữ số hoặc dấu gạch nối.
Thuộc tính “Title”:
Thuộc tính tiêu đề (Title) là một xâu ký tự được dùng bởi các frontend như là
một xâu tiêu đề và nên là một xâu ngắn (một hoặc hai từ). Tiêu đề được chọn dựa trên
chức năng của thuộc tính đó.
Thuộc tính “Description”:
Thuộc tính mô tả (desc) thường là một xâu ký tự dài được dùng như là một
dạng trợ giúp để mô tả về thuộc tính.



×