├── .gitattributes
├── LICENSE
├── README.md
├── css
├── .htaccess
├── dd.css
├── jcrop.gif
├── jquery.jcrop.css
├── nouislider.fox.css
└── style.css
├── doc
├── .htaccess
├── CHANGELOG
├── LICENSE
├── README_DE.txt
├── README_EN.txt
└── README_PL.txt
├── download.php
├── favicon.ico
├── help
├── help_0.php
├── help_1.php
├── help_2.php
├── help_4.php
├── help_6.php
├── help_7.php
├── help_8.php
└── help_9.php
├── images
├── .htaccess
├── Thumbs.db
├── btn_accept.png
├── btn_preview.png
├── filetype_bmp.png
├── filetype_jpg.png
├── filetype_other.png
├── filetype_pdf.png
├── filetype_png.png
├── filetype_pnm.png
├── filetype_tif.png
├── filetype_txt.png
├── help_icon.png
├── lang_cz.gif
├── lang_de.gif
├── lang_en.gif
├── lang_fi.gif
├── lang_fr.gif
├── lang_it.gif
├── lang_nl.gif
├── lang_pl.gif
├── lang_ru.gif
├── lang_uk.gif
├── logo.jpg
├── mode_color.png
├── mode_gray.png
├── mode_lineart.png
├── msdropdown_arrow.gif
├── msdropdown_bg.gif
├── pagesize_a4.png
├── pagesize_a5.png
├── pagesize_a6.png
├── pagesize_custom.png
├── phpSane_Screenshot_1.png
├── phpSane_Screenshot_2.png
├── scan.jpg
├── source
│ ├── Hardware-Scanner-2-icon.png
│ ├── file type
│ │ ├── file_icons_version_2_by_jrdn88-dxmw0i.zip
│ │ ├── file_icons_version_3_by_jrdn88-d14uaad.zip
│ │ ├── filetype_bmp.png
│ │ ├── filetype_jpg.png
│ │ ├── filetype_pdf.png
│ │ ├── filetype_png.png
│ │ ├── filetype_pnm.png
│ │ ├── filetype_tif.png
│ │ └── filetype_txt.png
│ └── page size
│ │ ├── pagesize_a4.xcf
│ │ ├── pagesize_a5.xcf
│ │ ├── pagesize_a6.xcf
│ │ └── pagesize_custom.xcf
├── source_adf.png
├── source_auto.png
├── source_flatbed.png
└── spinner.gif
├── incl
├── .htaccess
├── config.php
├── files.php
├── functions.php
├── language.php
├── menu.php
├── scan.php
└── security.php
├── index.html
├── index.php
├── javascript
├── .htaccess
├── jquery.jcrop.min.js
├── jquery.min.js
├── jquery.msdropdown_custom.min.js
├── jquery.nouislider.min.js
└── source
│ ├── jquery.jcrop.js
│ ├── jquery.js
│ ├── jquery.msdropdown_custom.js
│ ├── jquery.msdropdown_original.js
│ ├── jquery.msdropdown_original.min.js
│ └── jquery.nouislider.js
├── phpsane.php
└── save.php
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C) 2018 Decaux Nicolas
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | phpSANE is a web-based frontend for SANE written in HTML/PHP so you can scan with your web-browser. It also supports OCR.
2 | It's forked from [SourceForge phpSane](https://sourceforge.net/projects/phpsane/)
3 |
4 | [](https://github.com/gawindx/phpSane)
5 | [](https://github.com/gawindx/phpSane)
6 |
7 | ## Installing phpSANE on FreeBSD
8 |
9 | ### Prerequisites
10 | `pkg_add -r sane-backends`
11 | `pkg_add -r sane-frontends`
12 | `pkg_add -r git*`
13 |
14 | ### Testing
15 | The following programs must succeed, because phpSANE is based on them.
16 |
17 | `sane-find-scanner -q`
18 | `scanimage -L`
19 | `su -m www -c 'scanimage --test'`
20 |
21 | ### Obtain the source code
22 | #### Use git
23 | `cd /var/www`
24 | `git clone https://github.com/gawindx/phpSane.git`
25 |
26 | #### Or download the latest version
27 | `mkdir /var/www/phpsane`
28 | `cd /var/www`
29 | `fetch https://github.com/gawindx/phpSane/archive/master.zip`
30 | `unzip master.zip`
31 |
32 | ### Set permissions
33 | `chown -R root:www phpsane/tmp phpsane/output`
34 | `chmod 775 phpsane/tmp phpsane/output`
35 |
36 | ## Apache configuration
37 | ` `
38 | ` DirectoryIndex index.php`
39 | ` Require group Admins Users Faktura`
40 | ` `
41 |
42 | ## For Fedora User (fc32)
43 | On a fresh install, you need to install "netpbm-progs", "gocr", "ImageMagick" and "poppler-utils" :
44 |
45 | `dnf install gocr netpbm-progs poppler-utils ImageMagick`
46 |
47 | ## OPTIONAL:
48 | ### SELinux
49 |
50 | If SELinux is activated and Enforced, you need to apply this custom rule :
51 | ```semanage fcontext -a -t httpd_sys_content_t "/var/www/phpsane(/.*)?"
52 | semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/phpsane/scanners(/.*)?"
53 | semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/phpsane/tmp(/.*)?"
54 | semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/phpsane/output(/.*)?"
55 | restorecon -R -v /var/www/phpsane
56 |
57 | cat my-phpSane.te<
2 | #one year
3 |
4 | Header set Cache-Control "max-age=29030400"
5 |
6 |
--------------------------------------------------------------------------------
/css/dd.css:
--------------------------------------------------------------------------------
1 | .borderRadius{-moz-border-radius:5px; border-radius:5px; }
2 | .borderRadiusTp{-moz-border-radius:5px 5px 0 0; border-radius:5px 5px 0 0;}
3 | .borderRadiusBtm{-moz-border-radius:0 0 5px 5px ; border-radius:0 0 5px 5px;}
4 |
5 | .ddcommon {position:relative;display:-moz-inline-stack; zoom:1; display:inline-block; *display:inline; cursor:default;}
6 | .ddcommon ul{padding:0;margin:0;}
7 | .ddcommon ul li{list-style-type:none;}
8 | .borderRadiusTp ul li:last-child{-moz-border-radius:0 0 5px 5px ; border-radius:0 0 5px 5px;border-bottom:0 none #c3c3c3; }
9 | .borderRadiusBtm ul li:first-child{-moz-border-radius:5px 5px 0 0; border-radius:5px 5px 0 0 ;border-bottom:1 solid #c3c3c3; }
10 |
11 | .ddcommon .disabled img, .ddcommon .disabled span, .ddcommon.disabledAll{
12 | opacity: .5; /* standard: ff gt 1.5, opera, safari */
13 | -ms-filter:"alpha(opacity=50)"; /* ie 8 */
14 | filter:alpha(opacity=50); /* ie lt 7 */
15 | -khtml-opacity:.5; /* safari 1.x */
16 | -moz-opacity:.5; /* ff lt 1.5, netscape */
17 | color:#999999;
18 | }
19 | .ddcommon .clear{clear:both}
20 | .ddcommon .shadow{-moz-box-shadow:5px 5px 5px -5px #888888;-webkit-box-shadow:5px 5px 5px -5px #888888;box-shadow: 5px 5px 5px -5px #888888;}
21 | .ddcommon input.text{color:#7e7e7e;padding:0 0 0 0; position:absolute; background:#fff; display:block; width:98%; height:98%; left:2px; top:0; border:none;}
22 | .ddOutOfVision{position:relative; display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline;}
23 | .borderRadius .shadow{-moz-box-shadow:5px 5px 5px -5px #888888;-webkit-box-shadow:5px 5px 5px -5px #888888;box-shadow: 5px 5px 5px -5px #888888;}
24 | .borderRadiusBtm .shadow{-moz-box-shadow:-5px -5px 5px -5px #888888;-webkit-box-shadow:-5px -5px 5px -5px #888888;box-shadow: -5px -5px 5px -5px #888888}
25 | .borderRadiusTp .border, .borderRadius .border{-moz-border-radius:0 0 5px 5px ; border-radius:0 0 5px 5px;}
26 | .borderRadiusBtm .border{-moz-border-radius:5px 5px 0 0; border-radius:5px 5px 0 0;}
27 | img.fnone{float:none !important}
28 | .ddcommon .divider{width:0; height:100%; position:absolute;}
29 | .ddcommon .ddArrow{display:inline-block; position:absolute; top:50%; right:4px;}
30 | .ddcommon .ddArrow:hover{background-position:0 100%;}
31 | .ddcommon .ddTitle{padding:0; position:relative; display:inline-block; width:100%}
32 | .ddcommon .ddTitle .ddTitleText{display:block;}
33 | .ddcommon .ddTitle .ddTitleText .ddTitleText{padding:0;}
34 | .ddcommon .ddTitle .description{display:block;}
35 | .ddcommon .ddTitle .ddTitleText img{position:relative; vertical-align:middle; float:left}
36 | .ddcommon .ddChild{position:absolute;display:none;width:100%;overflow-y:auto; overflow-x:hidden; zoom:1; z-index:9999}
37 | .ddcommon .ddChild li{clear:both;}
38 | .ddcommon .ddChild li .description{display:block;}
39 | .ddcommon .ddChild li img{border:0 none; position:relative;vertical-align:middle;float:left}
40 | .ddcommon .ddChild li.optgroup{padding:0;}
41 | .ddcommon .ddChild li.optgroup .optgroupTitle{padding:0 5px; font-weight:bold; font-style:italic}
42 | .ddcommon .ddChild li.optgroup ul li{padding:5px 5px 5px 15px}
43 | .ddcommon .noBorderTop{border-top:none 0 !important; padding:0; margin:0;}
44 |
45 | /*************** default theme **********************/
46 | .dd{border:1px solid #c3c3c3;}
47 | .dd .divider{border-left:1px solid #c3c3c3; border-right:1px solid #fff;; right:24px;}
48 | .dd .ddArrow{width:16px;height:16px; margin-top:-8px; background:url(../../images/msdropdown/skin1/dd_arrow.gif) no-repeat;}
49 | .dd .ddArrow:hover{background-position:0 100%;}
50 | .dd .ddTitle{color:#000;background:#e2e2e4 url(../../images/msdropdown/skin1/title-bg.gif) repeat-x left top;}
51 | .dd .ddTitle .ddTitleText{padding:5px 20px 5px 5px;}
52 | .dd .ddTitle .ddTitleText .ddTitleText{padding:0;}
53 | .dd .ddTitle .description{font-size:12px; color:#666}
54 | .dd .ddTitle .ddTitleText img{padding-right:5px;}
55 | .dd .ddChild{border:1px solid #c3c3c3; background-color:#fff; left:-1px;}
56 | .dd .ddChild li{padding:5px; background-color:#fff; border-bottom:1px solid #c3c3c3;}
57 | .dd .ddChild li .description{color:#666;}
58 | .dd .ddChild li .ddlabel{color:#333;}
59 | .dd .ddChild li.hover{background-color:#f2f2f2}
60 | .dd .ddChild li img{padding:0 6px 0 0;}
61 | .dd .ddChild li.optgroup{padding:0;}
62 | .dd .ddChild li.optgroup .optgroupTitle{padding:0 5px; font-weight:bold; font-style:italic}
63 | .dd .ddChild li.optgroup ul li{padding:5px 5px 5px 15px}
64 | .dd .ddChild li.selected{background-color:#d5d5d5; color:#000;}
--------------------------------------------------------------------------------
/css/jcrop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gawindx/phpSane/caacc582b3017d2ff448dc166f1ac0c2d6d8f9a2/css/jcrop.gif
--------------------------------------------------------------------------------
/css/jquery.jcrop.css:
--------------------------------------------------------------------------------
1 | /* jquery.Jcrop.css v0.9.12 - MIT License */
2 | /*
3 | The outer-most container in a typical Jcrop instance
4 | If you are having difficulty with formatting related to styles
5 | on a parent element, place any fixes here or in a like selector
6 |
7 | You can also style this element if you want to add a border, etc
8 | A better method for styling can be seen below with .jcrop-light
9 | (Add a class to the holder and style elements for that extended class)
10 | */
11 | .jcrop-holder {
12 | direction: ltr;
13 | text-align: left;
14 | }
15 | /* Selection Border */
16 | .jcrop-vline,
17 | .jcrop-hline {
18 | background: #ffffff url("jcrop.gif");
19 | font-size: 0;
20 | position: absolute;
21 | }
22 | .jcrop-vline {
23 | height: 100%;
24 | width: 1px !important;
25 | }
26 | .jcrop-vline.right {
27 | right: 0;
28 | }
29 | .jcrop-hline {
30 | height: 1px !important;
31 | width: 100%;
32 | }
33 | .jcrop-hline.bottom {
34 | bottom: 0;
35 | }
36 | /* Invisible click targets */
37 | .jcrop-tracker {
38 | height: 100%;
39 | width: 100%;
40 | /* "turn off" link highlight */
41 | -webkit-tap-highlight-color: transparent;
42 | /* disable callout, image save panel */
43 | -webkit-touch-callout: none;
44 | /* disable cut copy paste */
45 | -webkit-user-select: none;
46 | }
47 | /* Selection Handles */
48 | .jcrop-handle {
49 | background-color: #333333;
50 | border: 1px #eeeeee solid;
51 | width: 7px;
52 | height: 7px;
53 | font-size: 1px;
54 | }
55 | .jcrop-handle.ord-n {
56 | left: 50%;
57 | margin-left: -4px;
58 | margin-top: -4px;
59 | top: 0;
60 | }
61 | .jcrop-handle.ord-s {
62 | bottom: 0;
63 | left: 50%;
64 | margin-bottom: -4px;
65 | margin-left: -4px;
66 | }
67 | .jcrop-handle.ord-e {
68 | margin-right: -4px;
69 | margin-top: -4px;
70 | right: 0;
71 | top: 50%;
72 | }
73 | .jcrop-handle.ord-w {
74 | left: 0;
75 | margin-left: -4px;
76 | margin-top: -4px;
77 | top: 50%;
78 | }
79 | .jcrop-handle.ord-nw {
80 | left: 0;
81 | margin-left: -4px;
82 | margin-top: -4px;
83 | top: 0;
84 | }
85 | .jcrop-handle.ord-ne {
86 | margin-right: -4px;
87 | margin-top: -4px;
88 | right: 0;
89 | top: 0;
90 | }
91 | .jcrop-handle.ord-se {
92 | bottom: 0;
93 | margin-bottom: -4px;
94 | margin-right: -4px;
95 | right: 0;
96 | }
97 | .jcrop-handle.ord-sw {
98 | bottom: 0;
99 | left: 0;
100 | margin-bottom: -4px;
101 | margin-left: -4px;
102 | }
103 | /* Dragbars */
104 | .jcrop-dragbar.ord-n,
105 | .jcrop-dragbar.ord-s {
106 | height: 7px;
107 | width: 100%;
108 | }
109 | .jcrop-dragbar.ord-e,
110 | .jcrop-dragbar.ord-w {
111 | height: 100%;
112 | width: 7px;
113 | }
114 | .jcrop-dragbar.ord-n {
115 | margin-top: -4px;
116 | }
117 | .jcrop-dragbar.ord-s {
118 | bottom: 0;
119 | margin-bottom: -4px;
120 | }
121 | .jcrop-dragbar.ord-e {
122 | margin-right: -4px;
123 | right: 0;
124 | }
125 | .jcrop-dragbar.ord-w {
126 | margin-left: -4px;
127 | }
128 | /* The "jcrop-light" class/extension */
129 | .jcrop-light .jcrop-vline,
130 | .jcrop-light .jcrop-hline {
131 | background: #ffffff;
132 | filter: alpha(opacity=70) !important;
133 | opacity: .70!important;
134 | }
135 | .jcrop-light .jcrop-handle {
136 | -moz-border-radius: 3px;
137 | -webkit-border-radius: 3px;
138 | background-color: #000000;
139 | border-color: #ffffff;
140 | border-radius: 3px;
141 | }
142 | /* The "jcrop-dark" class/extension */
143 | .jcrop-dark .jcrop-vline,
144 | .jcrop-dark .jcrop-hline {
145 | background: #000000;
146 | filter: alpha(opacity=70) !important;
147 | opacity: 0.7 !important;
148 | }
149 | .jcrop-dark .jcrop-handle {
150 | -moz-border-radius: 3px;
151 | -webkit-border-radius: 3px;
152 | background-color: #ffffff;
153 | border-color: #000000;
154 | border-radius: 3px;
155 | }
156 | /* Simple macro to turn off the antlines */
157 | .solid-line .jcrop-vline,
158 | .solid-line .jcrop-hline {
159 | background: #ffffff;
160 | }
161 | /* Fix for twitter bootstrap et al. */
162 | .jcrop-holder img,
163 | img.jcrop-preview {
164 | max-width: none;
165 | }
166 |
--------------------------------------------------------------------------------
/css/nouislider.fox.css:
--------------------------------------------------------------------------------
1 | .noUiSlider,
2 | .noUiSlider * {
3 | -webkit-box-sizing: border-box;
4 | -moz-box-sizing: border-box;
5 | box-sizing: border-box;
6 | -webkit-user-select: none;
7 | -moz-user-select: none;
8 | -ms-user-select: none;
9 | display: block;
10 | cursor: default;
11 | }
12 | .noUiSlider {
13 | position: relative;
14 | }
15 | .noUiSlider a {
16 | position: absolute;
17 | z-index: 1;
18 | }
19 | .noUiSlider a:nth-child(2) {
20 | background: inherit !important;
21 | }
22 | .noUiSlider.vertical a {
23 | width: 100%;
24 | bottom: 0;
25 | }
26 | .noUiSlider.horizontal a {
27 | height: 100%;
28 | right: 0;
29 | }
30 | @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
31 | .noUiSlider:before,
32 | body.TOUCH,
33 | .noUiSlider div {
34 | -ms-touch-action: none;
35 | }
36 | .noUiSlider:before {
37 | display: block;
38 | position: absolute;
39 | width: 150%;
40 | left: -25%;
41 | height: 400%;
42 | top: -150%;
43 | content: "";
44 | z-index: -1;
45 | }
46 | .noUiSlider.vertical:before {
47 | width: 400%;
48 | left: -150%;
49 | height: 150%;
50 | top: -25%;
51 | }
52 | }
53 | .noUiSlider {
54 | border: 1px solid #908d84;
55 | border-radius: 3px;
56 | }
57 | .noUiSlider.connect a,
58 | .noUiSlider.connect.lower {
59 | background: #b2a98f;
60 | }
61 | .noUiSlider,
62 | .noUiSlider.connect.lower a {
63 | background: #d9d7cb;
64 | box-shadow: inset 0px 1px 7px #b6b4a8
65 | }
66 | .noUiSlider.disabled,
67 | .noUiSlider.disabled.connect.lower a {
68 | background: #ccc;
69 | box-shadow: none;
70 | }
71 | .noUiSlider div {
72 | height: 18px;
73 | width: 18px;
74 | border: 1px solid #99968f;
75 | border-radius: 3px;
76 | background: #efefe7;
77 | }
78 | .noUiSlider.disabled div {
79 | background: transparent;
80 | }
81 | .noUiSlider.horizontal {
82 | width: 300px;
83 | height: 10px;
84 | }
85 | .noUiSlider.horizontal div {
86 | margin: -5px 0 0 -9px;
87 | }
88 | .noUiSlider.vertical {
89 | width: 10px;
90 | height: 300px;
91 | }
92 | .noUiSlider.vertical div {
93 | margin: -9px 0 0 -5px;
94 | }
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 100%;
3 | -webkit-text-size-adjust: 100%;
4 | -ms-text-size-adjust: 100%;
5 | }
6 |
7 | body {
8 | font-family: Arial, Verdana, Helvetica, sans-serif;
9 | font-style: normal;
10 | font-weight: normal;
11 | text-decoration: none;
12 | font-size: 10pt;
13 | line-height: 110%;
14 | color: #000000;
15 | background: #ffffff;
16 | margin: 0.0em 0.75em 0.75em 0.75em;
17 | border: 0em;
18 | padding: 0em;
19 | text-align: left;
20 | min-width: 780px;
21 | }
22 |
23 | a {
24 | color: #0088cc;
25 | text-decoration: none;
26 | }
27 | a:hover {
28 | color: #005580;
29 | text-decoration: underline;
30 | outline: 0;
31 | }
32 | a:focus {
33 | outline: thin dotted #333;
34 | outline: 5px auto -webkit-focus-ring-color;
35 | outline-offset: -2px;
36 | }
37 |
38 | /* ------------------------------------------------------------------ */
39 | /* header */
40 | #page_header {
41 | width: 100%;
42 | white-space: nowrap;
43 | border-collapse: collapse;
44 | border: none;
45 | padding: 0.0em 0.0em;
46 | margin: 0.0em 0.0em;
47 | }
48 |
49 | #page_header td {
50 | vertical-align: top;
51 | border: none;
52 | padding: 0.0em 0.0em;
53 | margin: 0.0em 0.0em;
54 | }
55 |
56 | #logo {
57 | padding-top: 0.4em;
58 | float: left;
59 | border: none;
60 | width: 455px;
61 | height: 95px;
62 | }
63 |
64 | #header_menu {
65 | text-align: center;
66 | padding: 0.5em 0 0.5em 0;
67 | margin: 0;
68 | background-color: #cbcbcb;
69 | border-radius: 0px 0px 10px 10px;
70 | float: right;
71 | min-width: 4em;
72 | }
73 |
74 | #header_menu > li {
75 | padding: 0 0.5em 0 0.5em;
76 | display: inline;
77 | list-style-type: none;
78 | text-align: left;
79 | }
80 |
81 | #header_menu a {
82 | font-weight: bold;
83 | font-size: 110%;
84 | color: #005580;
85 | }
86 |
87 | #language_select {
88 | width: 12.5em;
89 | display: inline-block;
90 | }
91 |
92 | #language_select_msdd {
93 | width: 12em;
94 | }
95 |
96 | /* ------------------------------------------------------------------ */
97 | /* body */
98 | #page_body {
99 | padding: 0.0em;
100 | margin: 1.5em auto;
101 | }
102 |
103 | #page_body > tbody > tr > td {
104 | padding: 0.6em;
105 | }
106 |
107 | .input_error {
108 | color: red;
109 | }
110 |
111 | #tab_menu_error_text {
112 | font-size: 170%;
113 | font-weight: bold;
114 | line-height: 170%;
115 | color: red;
116 | height: 8em;
117 | }
118 |
119 | #tab_menu_error_button {
120 | font-size: 150%;
121 | height: 2em;
122 | }
123 |
124 | #tab_preview, #tab_menu{
125 | vertical-align: top;
126 | padding: 0.0em 0.5em;
127 | height: 100%;
128 | }
129 | #preview_image {
130 | border: solid black 1px;
131 | }
132 |
133 | #tab_menu_settings {
134 | height: 100%;
135 | padding: 0.0em;
136 | margin: 0.0em;
137 | }
138 | #tab_menu_settings td {
139 | padding: 0.15em 0.0em;
140 | }
141 | #tab_menu_settings .value_column > input[type="text"] {
142 | line-height: 30px;
143 | width: 210px;
144 | display: inline-block;
145 | height: 30px;
146 | padding: 4px 6px;
147 | -webkit-box-sizing: border-box;
148 | -moz-box-sizing: border-box;
149 | box-sizing: border-box;
150 | font-size: 14px;
151 | line-height: 20px;
152 | color: #555555;
153 | -webkit-border-radius: 4px;
154 | -moz-border-radius: 4px;
155 | border-radius: 5px;
156 | vertical-align: middle;
157 | background-color: #ffffff;
158 | border: 1px solid #cccccc;
159 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
160 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
161 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
162 | -webkit-transition: border linear .2s, box-shadow linear .2s;
163 | -moz-transition: border linear .2s, box-shadow linear .2s;
164 | -o-transition: border linear .2s, box-shadow linear .2s;
165 | transition: border linear .2s, box-shadow linear .2s;
166 | }
167 | #tab_menu_settings .value_column > input[type="text"]:focus {
168 | border-color: rgba(82, 168, 236, 0.8);
169 | outline: 0;
170 | outline: thin dotted \9; /* IE6-9 */
171 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
172 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
173 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
174 | }
175 |
176 | #tab_menu_settings #brightness_slider {
177 | width: 155px;
178 | display: inline-block;
179 | vertical-align:middle;
180 | margin-top: auto;
181 | background-color: #e5e5e7;
182 | }
183 | #tab_menu_settings #brightness {
184 | width: 44px;
185 | margin-left: 7px;
186 | }
187 |
188 | #tab_menu_settings #contrast_slider {
189 | width: 155px;
190 | display: inline-block;
191 | vertical-align:middle;
192 | margin-top: auto;
193 | background-color: #e5e5e7;
194 | }
195 | #tab_menu_settings #contrast {
196 | width: 44px;
197 | margin-left: 7px;
198 | }
199 |
200 | #tab_menu_settings select {
201 | width: 210px;
202 | }
203 | #tab_menu_settings tr:first-child th{
204 | padding-top: 0px;
205 | margin-top: 0px;
206 | }
207 | #tab_menu_settings #scanner_name {
208 | padding-top: 0.8em;
209 | padding-bottom: 0.8em;
210 | }
211 | #tab_menu_settings th {
212 | font-weight: bold;
213 | padding: 1em 0em 0.1em 0.0em;
214 | text-align: left;
215 | }
216 | #tab_menu_settings .value_column {
217 | padding-left: 0.75em;
218 | }
219 | #tab_menu_settings .unit_column, .unit_spacer {
220 | padding: 0;
221 | width: 2.0em;
222 | padding-left: 0.2em;
223 | }
224 |
225 | #tab_menu_buttons {
226 | height: 100%;
227 | vertical-align: bottom !important;
228 | padding: 0.0em !important;
229 | margin: 0.0em;
230 | }
231 | #tab_menu_buttons input {
232 | padding: 0.6em 0em;
233 | width: 49.5%;
234 | text-align: left;
235 | border: solid 1px #dcdcdc;
236 | background-position: 10px center;
237 | background-repeat: no-repeat;
238 | -webkit-border-radius: 2px;
239 | -moz-border-radius: 2px;
240 | border-radius: 2px;
241 | border-width: 1px;
242 | color: #666666;
243 | font: bold 130% arial,sans-serif;
244 | }
245 | #tab_menu_buttons input:hover {
246 | background-color: #e2e2e4;
247 | border-color: #b0b0b0;
248 | }
249 | #tab_menu_buttons_preview {
250 | padding-left: 40px !important;
251 | background-image: url(../images/btn_preview.png);
252 | }
253 | #tab_menu_buttons_accept {
254 | padding-left: 47px !important;
255 | background-image: url(../images/btn_accept.png);
256 | }
257 | #tab_menu_buttons input + input {
258 | margin-left: 1%;
259 | }
260 |
261 | #files_table_wrapper {
262 | width: 100%;
263 | }
264 | #files_table_wrapper td {
265 | margin: 0;
266 | padding: 0;
267 | }
268 | #files_table_wrapper .ruler {
269 | margin-top: -0.6em;
270 | background-color: #888;
271 | margin-left: -0.1em;
272 | }
273 |
274 | #files_table {
275 | background-color: #F3F3F3;
276 | border-collapse: collapse;
277 | width: 100%;
278 | margin: 5px 0;
279 | border: solid 1px #AAA;
280 | }
281 | #files_table th {
282 | background-color: #666;
283 | color: #FFF;
284 | cursor: default;
285 | padding: 5px 5px 5px 5px;
286 | }
287 | #files_table td, #files_table th {
288 | text-align: left;
289 | padding-top: 10px;
290 | padding-bottom: 10px;
291 | white-space: nowrap;
292 | }
293 | #files_table a {
294 | text-decoration: none;
295 | }
296 | #files_table td a {
297 | color: #444;
298 | display: block;
299 | padding: 5px;
300 | }
301 | #files_table td input {
302 | margin: 10px;
303 | }
304 | #files_table .file_row_new {
305 | background-color: #FFE599 !important;
306 | }
307 | #files_table .file_column_ext {
308 | text-align: left;
309 | }
310 | #files_table .file_column_size, #files_table .file_column_modtime {
311 | text-align: right;
312 | }
313 | #files_table .file_column_category {
314 | display: none;
315 | }
316 | #files_table .file_column_name a {
317 | background: url(../images/filetype_other.png) no-repeat 5px 50%;
318 | padding-left: 38px;
319 | }
320 | #files_table .file_column_name {
321 | width: 100%;
322 | }
323 | #files_table td:not(.file_column_name) a {
324 | background-image: none !important;
325 | }
326 | #files_table tr:nth-of-type(odd) {
327 | background-color: #E6E6E6;
328 | }
329 | #files_table tr:hover td {
330 | background-color:#CACACA;
331 | }
332 | #files_table tr:hover td a {
333 | color: #000;
334 | }
335 | /* icons for file types */
336 | #files_table .file_column_name a[href$=".bmp"] {background-image: url(../images/filetype_bmp.png);}
337 | #files_table .file_column_name a[href$=".jpg"], #files_table .file_column_name a[href$=".jpeg"] {background-image: url(../images/filetype_jpg.png);}
338 | #files_table .file_column_name a[href$=".pdf"] {background-image: url(../images/filetype_pdf.png);}
339 | #files_table .file_column_name a[href$=".png"] {background-image: url(../images/filetype_png.png);}
340 | #files_table .file_column_name a[href$=".pnm"] {background-image: url(../images/filetype_pnm.png);}
341 | #files_table .file_column_name a[href$=".tif"], #files_table .file_column_name a[href$=".tiff"] {background-image: url(../images/filetype_tif.png);}
342 | #files_table .file_column_name a[href$=".txt"] {background-image: url(../images/filetype_txt.png);}
343 |
344 | #file_buttons {
345 | margin: 1em 0 0.2em 0;
346 | padding: 0;
347 | }
348 | #file_buttons li {
349 | float:left;
350 | margin: 0.0em 0.4em 0.0em 0.0em;
351 | list-style-type: none;
352 | height: 100%;
353 | border: none;
354 | }
355 | #select_menu_button, #file_delete, #file_download {
356 | position: relative;
357 | background: #f3f3f3;
358 | border: solid 1px #dcdcdc;
359 | border-collapse: separate;
360 | -webkit-border-radius: 2px;
361 | -moz-border-radius: 2px;
362 | border-radius: 2px;
363 | -webkit-touch-callout: none;
364 | -webkit-user-select: none;
365 | -khtml-user-select: none;
366 | -moz-user-select: none;
367 | -ms-user-select: none;
368 | user-select: none;
369 | padding-left: 10px;
370 | height: 35px;
371 | width: 50px;
372 |
373 | }
374 | #file_delete, #file_download {
375 | display: none;
376 | cursor: pointer;
377 | color: #666;
378 | font: bold 100% arial,sans-serif;
379 | width: auto;
380 | }
381 | #select_menu_button:hover, #file_delete:hover, #file_download:hover {
382 | background-color: #e2e2e4;
383 | border-color: #b0b0b0;
384 | }
385 | #file_download[disabled] {
386 | color: #aaa;
387 | }
388 | #file_download[disabled]:hover {
389 | background: #f3f3f3;
390 | border-color: #dcdcdc;
391 | }
392 | #file_download_spinner {
393 | display: none;
394 | background: url(../images/spinner.gif) no-repeat 0px 50%;
395 | height: 35px;
396 | line-height: 35px;
397 | padding-left: 35px;
398 | }
399 | #select_menu_button tr td{
400 | padding: 0;
401 | }
402 | #select_menu_arrow {
403 | display: inline-block;
404 | border-left: 5px solid transparent;
405 | border-right: 5px solid transparent;
406 | border-top: 5px solid #777777;
407 | }
408 | #select_menu_dropdown {
409 | display: none;
410 | position: absolute;
411 | list-style: none;
412 | margin: 0px;
413 | padding: 0px;
414 | -webkit-box-shadow: 0 4px 10px #8b8b8b;
415 | -moz-box-shadow: 0 4px 10px #8b8b8b;
416 | box-shadow: 0 4px 10px #8b8b8b;
417 | font-size: 14px;
418 | width: 80px;
419 | -webkit-touch-callout: none;
420 | -webkit-user-select: none;
421 | -khtml-user-select: none;
422 | -moz-user-select: none;
423 | -ms-user-select: none;
424 | user-select: none;
425 | }
426 | #select_menu_dropdown li {
427 | position: relative;
428 | display: inline-block;
429 | font: bold 75% arial,sans-serif;
430 | text-decoration: none;
431 | padding: 7px 0px 7px 12px;
432 | color: #444;
433 | background: #fff;
434 | border: none;
435 | width: 70px;
436 | float: left;
437 | cursor: pointer;
438 | }
439 | /* hide text selection by setting selection background color to white */
440 | #select_menu_dropdown li::selection {
441 | background: color: #000000; /* safari */
442 | }
443 | #select_menu_dropdown li::-moz-selection {
444 | background: color: #000000; /* firefox */
445 | }
446 | #select_menu_dropdown li:hover {
447 | background: #EEEEEE;
448 | }
449 |
450 | /* ------------------------------------------------------------------ */
451 | /* footer */
452 | #page_footer {
453 | width: 100%;
454 | font-size: 80%;
455 | font-weight: normal;
456 | line-height: 110%;
457 | text-align: center;
458 | border-collapse: collapse;
459 | border: none;
460 | margin: 150px 0.0em 0.4em 0.0em;
461 | background-color: silver;
462 | }
463 |
464 | #page_footer td {
465 | vertical-align: top;
466 | border: none;
467 | padding: 0.4em 0.0em;
468 | margin: 0.0em 0.0em;
469 | }
470 |
471 | /* ------------------------------------------------------------------ */
472 | .ruler {
473 | background-color: black;
474 | width: 100%;
475 | height: 2px;
476 | border-style: solid;
477 | border-width: 0px;
478 | padding: 0px !important;
479 | }
480 |
481 | /******************* custom msdropdown.css *************************/
482 |
483 | /* have padding and border inside width/height defined in width and height properties */
484 | .dd {
485 | -webkit-box-sizing: border-box;
486 | -moz-box-sizing: border-box;
487 | box-sizing: border-box;
488 | }
489 |
490 | /* Modify image of dd class */
491 | .dd .ddArrow{width:16px;height:16px; margin-top:-8px; background:url(../images/msdropdown_arrow.gif) no-repeat;}
492 | .dd .ddTitle{color:#000;background:#e2e2e4 url(../images/msdropdown_bg.gif) repeat-x left top;}
493 |
494 | /* prevent selection of text in dropdown */
495 | .ddcommon {
496 | -webkit-touch-callout: none;
497 | -webkit-user-select: none;
498 | -khtml-user-select: none;
499 | -moz-user-select: none;
500 | -ms-user-select: none;
501 | user-select: none;
502 | }
503 |
504 | /* Adjust height of fnone img*/
505 | img.fnone{float:none !important;height:24px;}
506 |
507 | /* prevent background overflow on the border-radius */
508 | .borderRadiusTp{-moz-border-radius:0 0 0 0;border-radius:0 0 0 0;-moz-border-top-left-radius:5px; -moz-border-top-right-radius:5px; border-top-left-radius:5px; border-top-right-radius:5px;}
509 | .borderRadiusBtm{-moz-border-radius:0 0 0 0;border-radius:0 0 0 0;-moz-border-bottom-left-radius:5px; -moz-border-bottom-right-radius:5px; border-bottom-left-radius:5px; border-bottom-right-radius:5px;}
510 |
511 |
--------------------------------------------------------------------------------
/doc/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | Order allow,deny
3 | Deny from all
4 |
5 |
--------------------------------------------------------------------------------
/doc/CHANGELOG:
--------------------------------------------------------------------------------
1 | Changelog
2 | ~~~~~~~~~~~
3 | * 0.8.1
4 | - Add support of multiple Source (Flatbed/ADF) (option disabled when not available)
5 | - msdropdown was updated to last version (v3.5.2)
6 | - minor improvements (utf-8 corrected for date file, possibilty to download single as file and not zipfile)
7 | - some indentation was cleaned and corrected
8 |
9 | * 0.8.0
10 | -Initial Fork to GitHub by Gawindx
11 |
12 | * 0.6.1
13 | - JS scripting code is not inserted directly into the HTML code
14 | - forms are sent by POST
15 | - changed encoding to UTF-8 with a view to creating translations in other languages
16 | - added finish translation
17 | - added russian translation
18 | - added ukrainian translation
19 | - fixed typo in lineart (monochrom) scan mode
20 | - changed scanner detection routine to avoid webcams detected as scanners
21 | - added support for pdf output through imagemagick
22 | - changed mode option to support scanimage 1.0.21+
23 |
24 | * 0.6.0
25 | - update by Wojciech Bronisz
26 | - Draw a box when selecting the scan area
27 | - Scanned file does not open pop-up windows (an option in config.php "save_type")
28 | - Scanned files are saved in "output" directory
29 | - While setting scan option is to broadcast the resulting
30 | file name (form field), if the file already exists in the
31 | directory "output" is added to the current date (YYYY-MM-dd HH-mm-ss)
32 | - And other small fixes in the code needed for these things
33 | - Add Polish language program.
34 |
35 | * 0.5.1
36 | - minor update by John Walsh
37 | - updated/fixed code for detecting resolutions supported, to include
38 | ranges
39 |
40 | * 0.5.0
41 | - major update by John Walsh
42 | - updated/fixed code for latest PHP 5
43 | - fixed all functionality for scan options and file types
44 | - added 'Extra' user options input area
45 | - added 'help' page to web interface
46 | - re-write of html and css for more standard/flexible page layout
47 | - cleaned up the config file, and made all options configurable
48 | from the config.php so that no other files need changing
49 |
50 | * 0.4.1
51 | - phpSANE now works without register_global
52 |
53 | * 0.4.0
54 | - Fixed bug #1104508
55 | - Supports feature #1104513
56 | - Code cleaned up.
57 |
58 | * 0.3.3
59 | - Some feature enhancements by Stefan Bernshausen
60 |
61 | * 0.3.2
62 | - Fixed bug #1086548
63 |
64 | * 0.3.1
65 | - You can specify your scanner manually (if phpSANE does not detect it).
66 | - The automatic installation _should_ do all necessary things now.
67 |
68 | * 0.3.0
69 | - phpSANE supports OCR now (requires gocr).
70 |
71 | * 0.2.0
72 | - phpSANE supports preview now.
73 |
74 | * 0.1.1
75 | - phpSANE verifies that a scanner is connected and does not print
76 | strange errors.
77 | - phpSANE is available in English and German.
78 | - Automatic installation with a bash-script.
79 |
--------------------------------------------------------------------------------
/doc/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Library General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License
307 | along with this program; if not, write to the Free Software
308 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309 |
310 |
311 | Also add information on how to contact you by electronic and paper mail.
312 |
313 | If the program is interactive, make it output a short notice like this
314 | when it starts in an interactive mode:
315 |
316 | Gnomovision version 69, Copyright (C) year name of author
317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 | This is free software, and you are welcome to redistribute it
319 | under certain conditions; type `show c' for details.
320 |
321 | The hypothetical commands `show w' and `show c' should show the appropriate
322 | parts of the General Public License. Of course, the commands you use may
323 | be called something other than `show w' and `show c'; they could even be
324 | mouse-clicks or menu items--whatever suits your program.
325 |
326 | You should also get your employer (if you work as a programmer) or your
327 | school, if any, to sign a "copyright disclaimer" for the program, if
328 | necessary. Here is a sample; alter the names:
329 |
330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
332 |
333 | , 1 April 1989
334 | Ty Coon, President of Vice
335 |
336 | This General Public License does not permit incorporating your program into
337 | proprietary programs. If your program is a subroutine library, you may
338 | consider it more useful to permit linking proprietary applications with the
339 | library. If this is what you want to do, use the GNU Library General
340 | Public License instead of this License.
341 |
--------------------------------------------------------------------------------
/doc/README_DE.txt:
--------------------------------------------------------------------------------
1 | phpSANE (Version 0.6.0)
2 | ~~~~~~~~~
3 |
4 | phpSANE ist ein in PHP geschriebenes web-basierendes Frontend für SANE.
5 | Jetzt können Sie auch mit Ihrem Web-Browser scannen.
6 |
7 | Copyright (C) 2009 David Fröhlich
8 | and John Walsh
9 | and Wojciech Bronisz
10 |
11 | Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU
12 | General Public License, wie von der Free Software Foundation veröffentlicht,
13 | weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder
14 | (nach Ihrer Option) jeder späteren Version.
15 | Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von
16 | Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite
17 | Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
18 | Details finden Sie in der GNU General Public License.
19 | Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
20 | Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software
21 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22 |
23 |
24 | ------------------------------------------------------------------------
25 |
26 | Voraussetzungen:
27 | ^^^^^^^^^^^^^^^^
28 | * SANE
29 | * netpbm
30 | * Apache web-server mit PHP-Unterstützung
31 | * gocr (optional)
32 |
33 |
34 | ------------------------------------------------------------------------
35 |
36 | Installation:
37 | ^^^^^^^^^^^^^
38 | Kopieren Sie einfach das phpSANE-Verzeichnis in Ihr www-root Verzeichnis.
39 | Dann können Sie durch Öffnen der index.php in Ihrem Web-Browser scannen.
40 |
41 |
42 | ------------------------------------------------------------------------
43 |
44 | FAQ:
45 | ^^^^
46 |
47 | F: Wie uberprufe ich, ob mein Scanner arbeitet?
48 |
49 | A: Stellen Sie sicher, dass Ihr Scanner erkannt wurde und auf dem lokalen
50 | Computer ordnunsgemaess funktioniert. Um dies zu ueberpruefen, verwenden
51 | Sie bitte eine der Scanner-Anwendungen.
52 |
53 | Application Menu->Graphics->Scanner Tool
54 | Application Menu->Graphics->The GIMP, File->Aquire->XSane: Device Dialog...
55 |
56 | Sollte Ihr Scanner nicht lokal auf Ihrem Computer funktionieren, wird er
57 | auch nicht mit phpSANE funktionieren.
58 |
59 | ----------
60 |
61 | Q: Mein Scanner wird nicht mit phpSANE gefunden?
62 | Q: Mein Scanner wird erkannt, aber wenn ich Vorschau waehle oder scanne
63 | ist die Bilddatei leer?
64 |
65 | A: Dies ist moeglicherweise auf ein Problem mit der Rechtevergabe
66 | zurueckzufuehren. Versuche :-
67 |
68 | chmod +s /usr/bin/scanimage
69 | chmod 775 WWW_PHPSANE_DIR/tmp
70 |
71 | WWW_PHPSANE_DIR = Der www Bereich, in dem phpSANE verwendet wird.
72 |
73 | z.B.: Stellen Sie sicher, dass Ihr Apache Benutzer scanimage verwenden
74 | kann und Schreibrechte fuer das phpSANE tmp Verzeichnis hat.
75 |
76 | ----------
77 |
78 | Q: phpSANE zeigt fuer meinen Scanner einen anderen Namen/Model an?
79 |
80 | A: In verschiedenen Laendern kann ein Scanner unter unterschiedlichen
81 | Namen und Nummern verkauft werden, obwohl die Hardware identisch ist.
82 | Daher ist es moeglich, dass der Scanner mit einem anderen Namen
83 | aufgefuehrt wird. Zum Beispiel wird die Scannerserie Epson Perfection
84 | in Japan unter dem Namen GT-**** angeboten.
85 |
86 | ----------
87 |
88 | Q: phpSANE funktioniert, aber wenn ich "Scan" verwende passiert nichts?
89 |
90 | A: Zwei Dinge koennen falsch sein:-
91 |
92 | a) Der Scan Bereich ist ungueltig, z.B. haben Sie keinen Bereich zum
93 | Scannen ausgewaehlt.
94 |
95 | b) Wenn ein Scan fertig ist, oeffnet sich ein neues Fenster mit der zu
96 | speichernden Datei - dieses kann durch einen 'pop-up' blockiert
97 | unterdrueckt worden sein.
98 |
99 | ----------
100 |
101 | Q: phpSANE funktioniert, aber wie limitiere ich die Zugangsberechtigung
102 | auf mein internes Netzwerk?
103 |
104 | A: In httpd.conf :-
105 |
106 |
107 | DirectoryIndex index.php
108 | Order Deny,Allow
109 | Deny from all
110 | Allow from 127.0.0.0/8
111 | Allow from 192.168.1.0/24
112 |
113 |
114 | ------------------------------------------------------------------------
115 |
--------------------------------------------------------------------------------
/doc/README_EN.txt:
--------------------------------------------------------------------------------
1 | phpSANE (Version 0.6.0)
2 | ~~~~~~~~~
3 |
4 | phpSANE is a web-based frontend for SANE written in PHP.
5 | Now you can scan with your web-browser, too.
6 |
7 | Copyright (C) 2009 David Froehlich
8 | and John Walsh
9 | and Wojciech Bronisz
10 |
11 | This program is free software; you can redistribute it and/or modify it under
12 | the terms of the GNU General Public License as published by the Free Software
13 | Foundation; either version 2 of the License, or (at your option) any later
14 | version.
15 | This program is distributed in the hope that it will be useful, but
16 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
18 | details.
19 | You should have received a copy of the GNU General Public License along
20 | with this program; if not, write to the Free Software Foundation, Inc., 59
21 | Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22 |
23 |
24 | ------------------------------------------------------------------------
25 |
26 | Requirements:
27 | ^^^^^^^^^^^^^
28 | * SANE
29 | * netpbm
30 | * Apache web-server with PHP-support
31 | * gocr (optional)
32 |
33 |
34 | ------------------------------------------------------------------------
35 |
36 | Installation:
37 | ^^^^^^^^^^^^^
38 | Just copy the phpSANE-directory into your www-root.
39 | Then you can scan by opening index.php in your web-browser.
40 |
41 |
42 | ------------------------------------------------------------------------
43 |
44 | FAQ:
45 | ^^^^
46 |
47 | Q: How do I check if my scanner is working ?
48 |
49 | A: Before trying phpSANE, it is a good idea to make sure that your
50 | scanner is detected and working from the local machine. To do this,
51 | just use one of the scanner applications :-
52 |
53 | Application Menu->Graphics->Scanner Tool
54 | Application Menu->Graphics->The GIMP, File->Aquire->XSane: Device Dialog...
55 |
56 | If your scanner does not work directly from your machine, then it will
57 | not work through phpSANE.
58 |
59 | ----------
60 |
61 | Q: My scanner isn't found by phpSANE ?
62 | Q: My scanner is detected, but when I preview or scan, the image file
63 | is empty ?
64 |
65 | A: this is probably a permissions problem, try :-
66 |
67 | chmod +s /usr/bin/scanimage
68 | chmod 775 WWW_PHPSANE_DIR/tmp
69 |
70 | WWW_PHPSANE_DIR = the www file area you put phpSANE at.
71 |
72 | ie. Make sure that your apache user is able to scan with scanimage,
73 | and your apache user must have write-access to the phpSANE tmp directory.
74 |
75 | ----------
76 |
77 | Q: phpSANE is showing my scanner by a different name/model ?
78 |
79 | A: In different regions of the world, a scanner may be sold by different
80 | model names and numbers, but the internal hardware is exactly the same.
81 | So it may be that to the SANE project, the scanner is recognised by a
82 | different name to the one that you know your scanner as. For example,
83 | the Epson Perfection range of scanners are sold in Japan under the
84 | model names GT-****.
85 |
86 | ----------
87 |
88 | Q: phpSANE is working, but when I 'Scan', nothing happens ?
89 |
90 | A: There could be two things wrong :-
91 |
92 | a) the 'Scan Area' could be invalid,
93 | ie. you have not selected an area to scan.
94 |
95 | b) when a scan completes, a new window is opened with the scan
96 | results to allow you to save it - this may be blocked by a
97 | 'pop-up' blocker.
98 |
99 | ----------
100 |
101 | Q: phpSANE is working fine, but how do I restrict access to it to my
102 | internal network only ?
103 | A: in httpd.conf :-
104 |
105 |
106 | DirectoryIndex index.php
107 | Order Deny,Allow
108 | Deny from all
109 | Allow from 127.0.0.0/8
110 | Allow from 192.168.1.0/24
111 |
112 |
113 | ------------------------------------------------------------------------
114 |
--------------------------------------------------------------------------------
/doc/README_PL.txt:
--------------------------------------------------------------------------------
1 | phpSANE (Version 0.6.0)
2 | ~~~~~~~~~
3 |
4 | phpSANE jest interface'em do obsługi skanera napisanym w języku PHP
5 | wystarczy że skaner podłączony jest do komputera gdzie masz zainstalowany
6 | serwer www wraz z php, a użytkownik końcowy wystarczy że skorzysta
7 | z przeglądarki www - oro sposób na 'udostępnienie' dowolnego skanera w sieci
8 | lokalnej.
9 |
10 | Copyright (C) 2009 David Froehlich
11 | and John Walsh
12 | and Wojciech Bronisz
13 |
14 | This program is free software; you can redistribute it and/or modify it under
15 | the terms of the GNU General Public License as published by the Free Software
16 | Foundation; either version 2 of the License, or (at your option) any later
17 | version.
18 | This program is distributed in the hope that it will be useful, but
19 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21 | details.
22 | You should have received a copy of the GNU General Public License along
23 | with this program; if not, write to the Free Software Foundation, Inc., 59
24 | Temple Place, Suite 330, Boston, MA 02111-1307, USA.
25 |
26 |
27 | ------------------------------------------------------------------------
28 |
29 | Requirements:
30 | ^^^^^^^^^^^^^
31 | * SANE
32 | * netpbm
33 | * Apache web-server with PHP-support
34 | * gocr (optional)
35 |
36 |
37 | ------------------------------------------------------------------------
38 |
39 | Installation:
40 | ^^^^^^^^^^^^^
41 | Just copy the phpSANE-directory into your www-root.
42 | Then you can scan by opening index.php in your web-browser.
43 |
44 |
45 | ------------------------------------------------------------------------
46 |
47 | FAQ:
48 | ^^^^
49 |
50 | Q: How do I check if my scanner is working ?
51 |
52 | A: Before trying phpSANE, it is a good idea to make sure that your
53 | scanner is detected and working from the local machine. To do this,
54 | just use one of the scanner applications :-
55 |
56 | Application Menu->Graphics->Scanner Tool
57 | Application Menu->Graphics->The GIMP, File->Aquire->XSane: Device Dialog...
58 |
59 | If your scanner does not work directly from your machine, then it will
60 | not work through phpSANE.
61 |
62 | ----------
63 |
64 | Q: My scanner isn't found by phpSANE ?
65 | Q: My scanner is detected, but when I preview or scan, the image file
66 | is empty ?
67 |
68 | A: this is probably a permissions problem, try :-
69 |
70 | chmod +s /usr/bin/scanimage
71 | chmod 775 WWW_PHPSANE_DIR/tmp
72 |
73 | WWW_PHPSANE_DIR = the www file area you put phpSANE at.
74 |
75 | ie. Make sure that your apache user is able to scan with scanimage,
76 | and your apache user must have write-access to the phpSANE tmp directory.
77 |
78 | ----------
79 |
80 | Q: phpSANE is showing my scanner by a different name/model ?
81 |
82 | A: In different regions of the world, a scanner may be sold by different
83 | model names and numbers, but the internal hardware is exactly the same.
84 | So it may be that to the SANE project, the scanner is recognised by a
85 | different name to the one that you know your scanner as. For example,
86 | the Epson Perfection range of scanners are sold in Japan under the
87 | model names GT-****.
88 |
89 | ----------
90 |
91 | Q: phpSANE is working, but when I 'Scan', nothing happens ?
92 |
93 | A: There could be two things wrong :-
94 |
95 | a) the 'Scan Area' could be invalid,
96 | ie. you have not selected an area to scan.
97 |
98 | b) when a scan completes, a new window is opened with the scan
99 | results to allow you to save it - this may be blocked by a
100 | 'pop-up' blocker.
101 |
102 | ----------
103 |
104 | Q: phpSANE is working fine, but how do I restrict access to it to my
105 | internal network only ?
106 | A: in httpd.conf :-
107 |
108 |
109 | DirectoryIndex index.php
110 | Order Deny,Allow
111 | Deny from all
112 | Allow from 127.0.0.0/8
113 | Allow from 192.168.1.0/24
114 |
115 |
116 | ------------------------------------------------------------------------
117 |
--------------------------------------------------------------------------------
/download.php:
--------------------------------------------------------------------------------
1 | 1){
9 | foreach($_REQUEST['selected_files'] as $selected_file) {
10 | $selected_file_path = $save_dir . basename($selected_file);
11 | if(is_readable($selected_file_path)) {
12 | array_push($selected_file_paths, $selected_file_path);
13 | }
14 | }
15 | $zipfile_path = $temp_dir . 'scanned_' . time() . '.zip';
16 | if(sizeof($selected_file_paths) > 0) {
17 | create_zip($selected_file_paths, $zipfile_path, true);
18 | if(is_readable($zipfile_path)) {
19 | //output path to created file
20 | echo "$zipfile_path";
21 | }
22 | }
23 | }else{
24 | $selected_file = $_REQUEST['selected_files'][0];
25 | $selected_file_path = $save_dir . basename($selected_file);
26 | if(sizeof($selected_file_path) > 0) {
27 | if(is_readable($selected_file_path)) {
28 | echo "$selected_file_path";
29 | }
30 | }
31 | }
32 | }
33 |
34 |
35 | /* creates a compressed zip file */
36 | function create_zip($files = array(),$destination = '',$overwrite = false) {
37 | //if the zip file already exists and overwrite is false, return false
38 | if(file_exists($destination) && !$overwrite) { return false; }
39 |
40 | //vars
41 | $valid_files = array();
42 | //if files were passed in...
43 | if(is_array($files)) {
44 | //cycle through each file
45 | foreach($files as $file) {
46 | //make sure the file exists
47 | if(file_exists($file)) {
48 | $valid_files[] = $file;
49 | }
50 | }
51 | }
52 | //if we have good files...
53 | if(count($valid_files)) {
54 | //create the archive
55 | $zip = new ZipArchive();
56 | if($overwrite) {
57 | if($zip->open($destination, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE ) !== true) {
58 | return false;
59 | }
60 | }else{
61 | if($zip->open($destination, ZIPARCHIVE::CREATE ) !== true) {
62 | return false;
63 | }
64 | }
65 |
66 | //add the files
67 | foreach($valid_files as $file) {
68 | $zip->addFile($file, basename($file));
69 | }
70 |
71 | //close the zip
72 | $zip->close();
73 |
74 | //check to make sure the file exists
75 | return file_exists($destination);
76 | }else{
77 | return false;
78 | }
79 | }
80 | ?>
81 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gawindx/phpSane/caacc582b3017d2ff448dc166f1ac0c2d6d8f9a2/favicon.ico
--------------------------------------------------------------------------------
/help/help_0.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | phpSANE: help
9 |
10 |
11 |
12 |
31 | phpSANE: Hilfe
32 |
33 |
34 |
35 | Scan-Bereich
36 |
37 |
38 |
39 | Das Wählen einer Seitengröße stellt die erforderlichen
40 | Größen der Seiten ein.
41 |
42 |
43 |
44 | Ein Klick auf 'Bildvorschau' setzt die gewählte Ecke
45 | (oben linkes oder unteren rechts) an die Cursorposition.
46 |
47 |
48 |
49 |
50 | Scan-Wählen
51 |
52 |
53 |
54 | Nur die grundlegendsten Einstellmöglichkeiten werden direkt
55 | unterstützt, wie die Einstellung der Bildqualität
56 | (-Modus und -Auflösung)
57 | und das zu speichernde Dateiformat.
58 |
59 |
60 |
61 | Extra :-
62 |
63 |
64 |
65 | Für Ihren Scanner lautet die gesamte Liste von Optionen
66 | (Hilfe: scanimage - h) :-
67 |
68 |
69 |
70 |
71 | {$sane_help}
72 |
73 |
74 |
75 |
76 |
77 | Extraoptionen,
78 | die Sie dem Scan-Befehl hinzufügen möchten,
79 | können Sie in das 'Extra' Feld eintragen.
80 |
81 |
82 |
83 | Anmerkung: Unzulässige Buchstaben werden durch ein 'x' ersetzt.
84 |
85 |
86 |
87 | z.B. Steuerung der Helligkeit :-
88 |
89 |
90 |
91 | Die Angabe ist nicht bei allen Scannern gleich.
92 | Demnach müssen Sie probieren,
93 | welche Angabe Ihr Scanner erfordert.
94 | Es kann ein Prozentsatz sein,
95 | oder eine Zahl (z.B. -4..3).
96 |
114 | Scant den vollständigen Bereich in einer niedrigen Auflösung,
115 | so dass Sie Ihr Dokument ansehen und Ausschnitte auswählen
116 | können.
117 |
118 |
119 |
120 |
121 | Scannen :-
122 |
123 |
124 |
125 | Scant den vorgewählten Bereich und speichert ihn in
126 | der Ausgabedatei (Bild oder Text).
127 |
135 | Scant und verwendet OCR,
136 | um den Inhalt in eine ASCII-Textdatei umzuwandeln.
137 |
138 |
139 |
140 | Empfohlen wird Grayscale bei 300dpi oder mehr.
141 |
142 |
143 |
144 |
145 | Zurücksetzen :-
146 |
147 |
148 |
149 | Lädt die Seite neu,
150 | aber veraendert sonst nichts.
151 |
152 |
153 |
154 |
155 | Zurüecksetzen :-
156 |
157 |
158 |
159 | Stellt alle Parameter auf ihre Ausgangswerte zurück und
160 | löscht die Vorschau.
161 |
162 |
163 |
164 |
165 | Scan Befehl
166 |
167 |
168 |
169 | Unten auf der Seite wird die Befehlszeile angezeigt,
170 | mit der der Scan durchgefuehrt wurde.
171 | Dies erlaubt Ihnen,
172 | den Befehl im Falle von Fehlern manuell zu
173 | überprüfen und zu verändern.
174 |
45 | Choosing a page size will set the required page dimensions.
46 |
47 |
48 |
49 | Clicking on the 'preview image' area will set the appropriate
50 | corner (top left or bottom right) to the mouse position.
51 |
52 |
53 |
54 |
55 | Scan Options
56 |
57 |
58 |
59 | Only the most basic options are supported directly,
60 | that give you control over the image quality
61 | (--mode and --resolution)
62 | and the file format type to save the image as.
63 |
64 |
65 |
66 | Extra :-
67 |
68 |
69 |
70 | For your scanner,
71 | the full list of options (from: scanimage -h) is :-
72 |
73 |
74 |
75 |
76 | {$sane_help}
77 |
78 |
79 |
80 |
81 |
82 | Any extra options you want to add to the scan command,
83 | you can add them in this 'extra' field.
84 |
85 |
86 |
87 | NB. Invalid characters are replaced with an 'X'.
88 |
89 |
90 |
91 | eg. To control the brightness :-
92 |
93 |
94 |
95 | The value is not stanard across all scanners,
96 | so you need to see what options your scanner takes.
97 | It may be a percentage,
98 | or a number in a range (eg. -4..3).
99 |
117 | Does a scan of the whole area,
118 | at a low resolution and displays it,
119 | so you can view your document and select areas from it.
120 |
121 |
122 |
123 |
124 | Scan :-
125 |
126 |
127 |
128 | Does a scan of the area selected and lets you save the
129 | output file (image or text).
130 |
131 |
132 |
133 |
134 | OCR :- (only available if 'gocr' is installed)
135 |
136 |
137 |
138 | Does a scan and uses OCR to convert the contents into an ASCII text file.
139 |
140 |
141 |
142 | Recommend using Grayscale at 300dpi or above.
143 |
144 |
145 |
146 |
147 | Reset :-
148 |
149 |
150 |
151 | Re-loads the page,
152 | but does nothing else.
153 |
154 |
155 |
156 |
157 | Clean :-
158 |
159 |
160 |
161 | Resets all parameters to their default values and clears the preview.
162 |
163 |
164 |
165 |
166 | Scan Command
167 |
168 |
169 |
170 | At the bottom of the page,
171 | the command line used to perform the scan is displayed.
172 | This allows you to manually check the format of the command
173 | in case of errors.
174 |
46 | Choosing a page size will set the required page dimensions.
47 |
48 |
49 |
50 | Clicking on the 'preview image' area will set the appropriate
51 | corner (top left or bottom right) to the mouse position.
52 |
53 |
54 |
55 |
56 | Scan Options
57 |
58 |
59 |
60 | Only the most basic options are supported directly,
61 | that give you control over the image quality
62 | (--mode and --resolution)
63 | and the file format type to save the image as.
64 |
65 |
66 |
67 | Extra :-
68 |
69 |
70 |
71 | For your scanner,
72 | the full list of options (from: scanimage -h) is :-
73 |
74 |
75 |
76 |
77 | {$sane_help}
78 |
79 |
80 |
81 |
82 |
83 | Any extra options you want to add to the scan command,
84 | you can add them in this 'extra' field.
85 |
86 |
87 |
88 | NB. Invalid characters are replaced with an 'X'.
89 |
90 |
91 |
92 | eg. To control the brightness :-
93 |
94 |
95 |
96 | The value is not stanard across all scanners,
97 | so you need to see what options your scanner takes.
98 | It may be a percentage,
99 | or a number in a range (eg. -4..3).
100 |
118 | Does a scan of the whole area,
119 | at a low resolution and displays it,
120 | so you can view your document and select areas from it.
121 |
122 |
123 |
124 |
125 | Scan :-
126 |
127 |
128 |
129 | Does a scan of the area selected and lets you save the
130 | output file (image or text).
131 |
132 |
133 |
134 |
135 | OCR :- (only available if 'gocr' is installed)
136 |
137 |
138 |
139 | Does a scan and uses OCR to convert the contents into an ASCII text file.
140 |
141 |
142 |
143 | Recommend using Grayscale at 300dpi or above.
144 |
145 |
146 |
147 |
148 | Reset :-
149 |
150 |
151 |
152 | Re-loads the page,
153 | but does nothing else.
154 |
155 |
156 |
157 |
158 | Clean :-
159 |
160 |
161 |
162 | Resets all parameters to their default values and clears the preview.
163 |
164 |
165 |
166 |
167 | Scan Command
168 |
169 |
170 |
171 | At the bottom of the page,
172 | the command line used to perform the scan is displayed.
173 | This allows you to manually check the format of the command
174 | in case of errors.
175 |
49 | Отметьте требуемую область сканирования, кликнув мышью в окне предварительного просмотра, указав в начале левый верхний угол, затем правый нижний угол требуемой области сканирования.
50 |
51 |
52 |
53 |
54 | Параметры сканирования
55 |
56 |
57 |
58 | Здесь доступны только основные параметры установки качества сканирования (--mode и --resolution), а также формат файла, в котором будет сохранено сканируемое изображение.
59 |
60 |
61 |
62 | Дополнительно :-
63 |
64 |
65 |
66 | Полный список возможных настроек сканирования для Вашего сканера (из: scanimage -h):-
67 |
68 |
69 |
70 |
71 | {$sane_help}
72 |
73 |
74 |
75 |
76 |
77 | Любые дополнительные опции сканирования вы можете ввести в поле "Дополнительные параметры"
78 |
79 |
80 |
81 | NB. Все неподдерживаемые символы заменены на 'X'.
82 |
83 |
84 |
85 | К примеру, для контроля яркости сканирования :-
86 |
87 |
88 |
89 | Данное значение поля не является общим для всех сканеров.
90 | Оно может быть указано как в процентах, так и в определенном номерном диапазоне (например -4..3).
91 |
109 | Отображает в низком разрешении для просмотра всю страницу целиком, для того, чтобы можно было выбрать требуемую область для сканирования.
110 |
111 |
112 |
113 |
114 | Сканировать :-
115 |
116 |
117 |
118 | Сканирует выбранную область и сохраняет ее в файл (графический или текстовый, если выбрано распознавание текста ("OCR")).
119 |
120 |
121 |
122 |
123 | OCR :- (доступно, если установлена программа 'gocr' (поддерживается только английский язык)).
124 |
125 |
126 |
127 | Сканируется, распознается и сохраняется в ASCII текстовый файл.
128 |
129 |
130 |
131 | Рекомендуется использовать Оттенки серого с разрешением 300dpi или выше.
132 |
133 |
134 |
135 |
136 | Сброс :-
137 |
138 |
139 |
140 | Только перечитывание страницы.
141 |
142 |
143 |
144 |
145 | Очистить :-
146 |
147 |
148 |
149 | Сбросить все параметры в значения по умолчанию и очистить область предварительного просмотра.
150 |
151 |
152 |
153 |
154 | Команда сканирования
155 |
156 |
157 |
158 | Внизу страницы отображается командная строка с параметрами сканирования. Это позволяет вручную проверить правильность формата команды в случае ошибок.
159 |
45 | Choisir le format pour fixer la dimension de la page.
46 |
47 |
48 |
49 | Cliquer sur 'prévisualisation' pour fixer les coins
50 | (haut gauche et bas droit) à la position de la souris.
51 |
52 |
53 |
54 |
55 | Options de numérisation
56 |
57 |
58 |
59 | Seules les options basiques sont supportées directement,
60 | afin de contrôler la qualité de l'image
61 | (--mode et --resolution)
62 | ainsi que le format du fichier à créer.
63 |
64 |
65 |
66 | Extra :-
67 |
68 |
69 |
70 | Pour votre scanner,
71 | la liste complè des options (à partir de : scanimage -h) est :-
72 |
73 |
74 |
75 |
76 | {$sane_help}
77 |
78 |
79 |
80 |
81 |
82 | Chaque option suppl´mentaire que vous voulez utiliser
83 | à la commande de numérisation peut être
84 | ajoutée au champs 'extra'.
85 |
86 |
87 |
88 | NB: Les caractères invalides sont remplac´s par 'X'.
89 |
90 |
91 |
92 | ex: Pour contrôler la luminosité :-
93 |
94 |
95 |
96 | La valeur n'est pas standard selon les scanners,
97 | vous devez donc vous aviser des options que votre scanner utilise.
98 | Ce peut être un pourcentage ou un nombre dans une plage (ex: -4..3).
99 |
117 | Fait une numérisation en basse résolution
118 | de toute la page et vous donne un aperçu qui permet
119 | de sélectionner l'aire à numériser.
120 |
121 |
122 |
123 |
124 | Numériser :-
125 |
126 |
127 |
128 | Lance la numérisation de l'aire sélectionnée
129 | sous le nom de fichier choisi (image ou text).
130 |
138 | Numérise et utilise la reconnaisance optique de caractère (ROC)
139 | pour convertir le contenu en fichier text ASCII.
140 |
141 |
142 |
143 | Il est recommandé de numériser en nuances de gris à 300 dpi (ppp).
144 |
145 |
146 |
147 |
148 | Recharger :-
149 |
150 |
151 |
152 | Recharge la page, un point c'est tout.
153 |
154 |
155 |
156 |
157 | Réinitialiser :-
158 |
159 |
160 |
161 | Remet le formulaire aux valeurs par défaut et vide la prévisualisation.
162 |
163 |
164 |
165 |
166 | Commande de numérisation
167 |
168 |
169 |
170 | La ligne de commande utilisée pour lancer la numérisation
171 | est affichée à la fin de la page.
172 | Ceci vous permet de vérifier le format de la commande
173 | en cas d'erreurs.
174 |
46 | Choosing a page size will set the required page dimensions.
47 |
48 |
49 |
50 | Clicking on the 'preview image' area will set the appropriate
51 | corner (top left or bottom right) to the mouse position.
52 |
53 |
54 |
55 |
56 | Scan Options
57 |
58 |
59 |
60 | Only the most basic options are supported directly,
61 | that give you control over the image quality
62 | (--mode and --resolution)
63 | and the file format type to save the image as.
64 |
65 |
66 |
67 | Extra :-
68 |
69 |
70 |
71 | For your scanner,
72 | the full list of options (from: scanimage -h) is :-
73 |
74 |
75 |
76 |
77 | {$sane_help}
78 |
79 |
80 |
81 |
82 |
83 | Any extra options you want to add to the scan command,
84 | you can add them in this 'extra' field.
85 |
86 |
87 |
88 | NB. Invalid characters are replaced with an 'X'.
89 |
90 |
91 |
92 | eg. To control the brightness :-
93 |
94 |
95 |
96 | The value is not stanard across all scanners,
97 | so you need to see what options your scanner takes.
98 | It may be a percentage,
99 | or a number in a range (eg. -4..3).
100 |
118 | Does a scan of the whole area,
119 | at a low resolution and displays it,
120 | so you can view your document and select areas from it.
121 |
122 |
123 |
124 |
125 | Scan :-
126 |
127 |
128 |
129 | Does a scan of the area selected and lets you save the
130 | output file (image or text).
131 |
132 |
133 |
134 |
135 | OCR :- (only available if 'gocr' is installed)
136 |
137 |
138 |
139 | Does a scan and uses OCR to convert the contents into an ASCII text file.
140 |
141 |
142 |
143 | Recommend using Grayscale at 300dpi or above.
144 |
145 |
146 |
147 |
148 | Reset :-
149 |
150 |
151 |
152 | Re-loads the page,
153 | but does nothing else.
154 |
155 |
156 |
157 |
158 | Clean :-
159 |
160 |
161 |
162 | Resets all parameters to their default values and clears the preview.
163 |
164 |
165 |
166 |
167 | Scan Command
168 |
169 |
170 |
171 | At the bottom of the page,
172 | the command line used to perform the scan is displayed.
173 | This allows you to manually check the format of the command
174 | in case of errors.
175 |
46 | Choosing a page size will set the required page dimensions.
47 |
48 |
49 |
50 | Clicking on the 'preview image' area will set the appropriate
51 | corner (top left or bottom right) to the mouse position.
52 |
53 |
54 |
55 |
56 | Scan Options
57 |
58 |
59 |
60 | Only the most basic options are supported directly,
61 | that give you control over the image quality
62 | (--mode and --resolution)
63 | and the file format type to save the image as.
64 |
65 |
66 |
67 | Extra :-
68 |
69 |
70 |
71 | For your scanner,
72 | the full list of options (from: scanimage -h) is :-
73 |
74 |
75 |
76 |
77 | {$sane_help}
78 |
79 |
80 |
81 |
82 |
83 | Any extra options you want to add to the scan command,
84 | you can add them in this 'extra' field.
85 |
86 |
87 |
88 | NB. Invalid characters are replaced with an 'X'.
89 |
90 |
91 |
92 | eg. To control the brightness :-
93 |
94 |
95 |
96 | The value is not stanard across all scanners,
97 | so you need to see what options your scanner takes.
98 | It may be a percentage,
99 | or a number in a range (eg. -4..3).
100 |
118 | Does a scan of the whole area,
119 | at a low resolution and displays it,
120 | so you can view your document and select areas from it.
121 |
122 |
123 |
124 |
125 | Scan :-
126 |
127 |
128 |
129 | Does a scan of the area selected and lets you save the
130 | output file (image or text).
131 |
132 |
133 |
134 |
135 | OCR :- (only available if 'gocr' is installed)
136 |
137 |
138 |
139 | Does a scan and uses OCR to convert the contents into an ASCII text file.
140 |
141 |
142 |
143 | Recommend using Grayscale at 300dpi or above.
144 |
145 |
146 |
147 |
148 | Reset :-
149 |
150 |
151 |
152 | Re-loads the page,
153 | but does nothing else.
154 |
155 |
156 |
157 |
158 | Clean :-
159 |
160 |
161 |
162 | Resets all parameters to their default values and clears the preview.
163 |
164 |
165 |
166 |
167 | Scan Command
168 |
169 |
170 |
171 | At the bottom of the page,
172 | the command line used to perform the scan is displayed.
173 | This allows you to manually check the format of the command
174 | in case of errors.
175 |
46 | Scegliendo la il formato della pagina vengono impostate le dimensioni.
47 |
48 |
49 |
50 | Cliccando sull'immagine di anteprima si possono impostare delle dimensioni personalizzate, spostando gli angoli che definiscono l'area.
51 |
52 |
53 |
54 |
55 | Opzioni di scansione
56 |
57 |
58 |
59 | Solo le principali opzioni di base sono supportate,
60 | che danno il controllo sulla qualità dell'immagine (--mode e --resolution)
61 | e il formato del file nel quale memorizzare l'immagine
62 |
63 |
64 |
65 |
107 |
108 |
109 |
110 | Pulsanti
111 |
112 |
113 |
114 | Anteprima
115 |
116 |
117 |
118 | Effettua una scansione di tutta l'area, a bassa risoluzione, e la mostra, per consentire di selezionare il riquadro desiderato.
119 |
120 |
121 |
122 |
123 | Scansiona
124 |
125 |
126 |
127 | Effettua una scansione dell'area selezionata e permette di salvare il file in output, in base al formato scelto.
128 |
129 |
130 |
131 |
161 |
162 |
163 |
164 | Comando di scansione
165 |
166 |
167 |
168 | Nella parte inferiore della pagina viene visualizzata la linea di comando eseguita per effettuare la scansione, facilitando la verifica e la risoluzione di eventuali problemi.
169 |