Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 322
Рейтинг: 8
#1: 2021-12-13 14:23:22 ЛС | профиль | цитата
Всем привет.
Решился сделать программу для сканирования документов в среде HiAsm, но либо я плохо искал или просто нет нормального функционала (кубиков) для создания программы:
1. двухстороннее сканирование.
2. сканирование в PDF.
3. dpi сканирования.
и т.д.
Возможно были темы про это или какие то наработки.
Заранее всем спасибо.
карма: 0

0
Ответов: 307
Рейтинг: 26
#2: 2021-12-13 17:33:38 ЛС | профиль | цитата
На компьютере у себя в примерах найди Elements\delphi\Example\Image\ScanImage.sha
Вот тема https://forum.hiasm.com/topic/41760/0 почитай.
На четвёртой странице в конце есть схема.
Add(TWAIN,16595195,217,406)
{
ShowUI=1
link(onScan,8610803:doEvent1,[])
}
Add(MainForm,14727994,77,189)
{
Left=20
Top=105
Width=839
Height=599
Caption="Домашний МФУ"
BorderStyle=3
Icon=[ZIP7636000078DAED5A075494D7B61EC092628BB9C6A8B1C4DE1BC634A346A3B124B12431E59A981E634C8C468D351A7B27462902369A202020A0F4DE7B1B06187A1B18CACC304C8101BFB7CFFFFF20A0DE98E49677DF7A67ADED915930E7DBFDECBD8F48642432164D9F2EA27D84C8798C48345624128D1821FCDC4F244AA1CFC6D367F42BA24F44FCE76CED1F23FAFFF57F7319133D4634906814D124A2698209DC8FA6108D24EA4FD4ED3F88F971A2C144938916127D4CB49DE808D11922B307D071A2AD44AB055EC8EA4526FF26DC4C5E4F8A78177B8DE88BE747CFB9B079C5EEC40B3F3856FB9D8C6A8EBD988114976C886FE5A320B214E56955A8C9AF87BABA11CD3A03929393EBB76FDB9E4A7F7B89680FD112A2A7FF853C1811F514CE9841F4CEAC212F9FDBFCEABE749B4FDC1B3DB786E3D6FE18049D4C40A4452AE2EDB290762307398185288A2B872C4B8EFA1225B4F53AB41A5A71E70ED0DA7207E5A5E5BA552B57C5D0F79D225A2CE8E19FBDBA0B76FD3CD1BA95C33FF63E3AD7B6EEEA3BB771EDB300B87D178A9B3B22E1772816A1664988B1494792931899DE79908695A034A912D5B9755055AAA1573771D8DBF0B734B5A05963C0CA15ABA2E9BB770A7ED3ED9F68DF7D986D0FEC39E48B75CF6C8E3C35D9A9C9F2154F5C7CC307F61FFAC1E5AB20DCD81C069FBDD1083C168FF0F3C988BB9C89145709B2FD0A50185D868AF46AD4162AD058A38181F0B275A7F50EA70783DE80A6C666642667A9055B7A976880A0EFBFB27A103DC374FAE1906FBD4F4E706C3A3BC90DE74D6FE0C2C29BB8BCEA161CD7F9C37543083CB747E0F68118049F4E4494551A121CB290EE998BDCE022142754A02ABB068A3215744A3D27F34EB2D71A389D30BBFA61E3E6343AEF00D12CC156FFAC9D3FCA7CF3852716ECD93FD64ACE707334D91D162F7AC276A937ECDE23DBF93C10EE9B42E1BD2B8AC39EEA9A8BE2781964D9F5A82B69E4A8BE548BFA321D478ACA2634D619A06B681164DF82264D33742A3D34753A48330B7403070CBC2EA4DC217F4207ECF77B13CDFC6AD84EDF76DC029D9B7E0356F3BC70E92D5F38ACF54794453A4A1264D0D4EBC91E8096E63B24CF56C2D74A9FB5405D638052D68CFAF266D41637415EA047559E0E9512A26C2D6A8A08B78264AFD0916D69A192A971F2D069299D7F92E815219FFC91F5E898C727CFDB32F2686257EC9CED3CE701EF1FA3210D2923B919D0B6387BA01F0DFA56E81B5BA155B6A0B1D680866A03C9BC1975A54D1CD66AA91EB21C1D2AC45A9465685192AA415162237DAEA1B8AA81B2428D52718561C2B889BE846503D1B3820F3E548C99D2FBB95987C65D2CBB1F76A7778250915C83FB2D26FBF22C3142C325B8EC4AB12734ED1FCABE3C538BD2342D8A931B5198D088FC984694A5ABC9471A383FB7B774AC203CE78578DAFB21ED66E08ED166615D715BBDE0856CCFE276ACCAB2228E1AE5B276D99725C620225586308916DB1CABB1F6E768CA5535FF58F629BCEC0BE21A218D562337BC0155392A2EC755496AF1D2732F8710A61F45FCD5F4F7725ACF2D238F9DEE8A3DFC581AF40DCD1CCEAAAC148AE58974AE0EA937D4083C45713D318B937DB5241BA191127826AB71D8211F9EBE799D645F95538BD2D8181404B923EFE67948AEEF86D8EE538EA46152E445362027B401D20815E4797590896B70FB5A403DE1B2267AEBF772DA82BFAD187566A2B3A6A3CC0B822B3AD9488A93031AE42D84A719597E8D083253A2245E7A5FBBAF2B284549942772DCF622CD723992CFCC448A19D1D91948FB6D06D2CFCD4086F974645ACC80F8CABB9CEC73421A901DA0A2785B8FCA4C39CA526458F2EA329697F7124D1572E87DD79E31E70EB6DBF9DB41505568EEB1F1B28418CA459924A33CE404CBE84E50DA1E739A28E6A82ACA50126E8F34EB0F107F7C16124E9A22E99429C4566320BDF40C0AAE3C8562FB5E28BAFA288AAE88907F5184DC0B26105F980889DB5948825410FB2B91755B89F2D46ACAD93224FAA5E9089E1DD18742FEBF6F3C3D3EC13EA10D7B9BBDB4D97A494C08673B06BDAEB3CF0A31479E1984EC6B9B107B7806628F9A22E5D799905E1D0799477F28FC45A8BF25429DB708720F1164AE22945D13111F22145C1621CF460489D56390D84E47B66F32873DC35B49F2A94149622547DB36ECC816EEB2CF3F28A7FD3AF59CFCF2E25B9DB06745FA23A5B210AEF242FC20894070885727FC55299E483CFB3AA20F4E45D299D9C8B39F8F9A80F9688834852A6C1494C17F8332B03B147EC483AF08B53745A8BE2142E575114A1D45A407410756C483F560E4D82D45A64F39D2BD14E45FF52888AEE2F067874B0D039E1CE046303F13EE03F7E8E0D7C94ECDE509F24EF8E2026E205FAB844F6D09B6E64421A7209BC79DEA8104B3C588FC650AD22D5E4599F7DFD198F42D1A133E813A6E35D4310B898799C4C3B3C4433F28038CA1B84D3CF88850E3493A7013A1BC4D07974807D684DFC218B997C88E5C8E20CDB31E29EEF5C8B859DBAE8303DB0FE70B35C37CA1DEE8B49CDE775574B577662F0A450D644D5ACAEF0A280AE39164BE0A113F4F429AC52254876F8336EB28B419FBA149DB81C6E4EFD110CDB0CF261E5E873A7619FD7F3A94418FB5DB519B0E2A5C48070E2214921F486D45C8B13442B6452FE4DBCF42A6AB0F925DEB91E45C8FBCD0AA761EC68D1A7F9BA07E4F34BA6B3CBDB1FE7A351EB00C3A15A43E8711B6673C12CDE6411EF50B7479B6D0E55E8036E73CD4A97B20F77F1172AF47A0208CCAE0FE68889A83C6C4AF88BF2344BB8987DEED3A907B0A7EE0443A68B3A10B2288CF9B20C786FCDCE955A45C2F45A2531DF1504B7182C7EF62E52627A89644CB88FA76C4EFB67E77F4FDB0AB2BB31173623ED9CA34147B6F82BED019FAA2EB442E50261F81D46E22273B26472653265F85BF0967FFEAD8B7A049DD0A9DE41CD409CBEFFA81970855EEF7DA50B6B93132CF9A900E2623D77913121CEB107BB50E99BED5ED3A58BA607994509B4EEC58239C9F37F627B954D2C9012A93DC11BC6334927F5B0455C605E84B3CD054EA038DD415B9D7DE42CC0123249F3046D66F2690521C2971E071318CCAA05E643BB3C827D64193F10B1A625E223F306A8F456D36C4FEA690E210FB7B898511F75D99E77AA1F8FA6C6438B920E64A2DA26C6BC897651C7E5F7B7F96D32EB2DA4FA85F79FC73C70CBBB27A8E8D24880A265A6297ED08FE6934A4D73FE364DD54EA8DA6F240345586A121D70D617BFB2062AF08F1878D9176DA84F33F160FCB9DC94749BE0A3F23A84287901F2C269F580055C840C2DF8DB3A13A1F3E96B6C7A10E3E9075CE0469674C907D61108ADD5E45FC1531226D6AC88EEEEAE0EB8F36B01A61BF50C3F6E8C883F9BCB1E7834EFD1C117EE0454355F81EB217473495DC445345109AAB6360A84D82A12E15BA8A089404FC880C9B99483DD387D33BB381623B92AD27C59CE0D1847B3EE15FC2C7D3D06728963EC2DB505B1C127C808BA30C3FC55131E14F3733E1F45AE03001F9D7BF40E4851A845BD4502DC4EB40C869F6441F110DEA184FCFCD1DF318F1F079AAED97393AE92592BD2B9ACAFCD15C15CDE1362873D0D2900F832A0F0645160C3509A493508E477D81237439965C4CD2A4FDC4F9AF3A7605F9F20BE40F23C8A61EE7E3902FAF231647B95C66D7D98739FC278D891E41993BC52387B3083B2F47C40579BB0E0E6E3F2215FA2F2F09B556A765316FECFE3CCF7D85FA124F927D08E14C24EC12B43496A2555B8D564D25F151403CA5136F51C4E36DCECE7479D6D08A4F4293BE8B72C237940FDEE662119FCFFA40E9DFC187DBF200E12F10F06713FE0CC29F42F8138E906F590E82CCFB05C45C8847F0AF72AA493BE5340F82FA9590D33A2D410FBFE4DD3C59D4240B23BB49E1E4DEAA93E38E41833BCD4AE2A58C742046B33C967C2380D3158BABDAECD3847F0F97D3D4F1EF921DBD0255F818C2DF97F0F33EDC2906D9F131A81DFFAF77F1C71C3046D1B58928F6F810A1678B106C5685A2585E07B6A7AF5408F78A49F7BB53903FFC8DF94351E8C50A663B4CDEADBA1ADC69D111FE06B468CA097F36E18FE3F1173F08FFDCBF843FF6704FD2C16C881D8FC0FF7815C55459BB1D093979FA83EEA5CCA72FAF9C6D5393754B6150E612E60AB4EA6B393DB4A88B60A8CF20BF8E26FBF1E3F2822ECF86ECE714E1DF4DF83790FDBC23D8CFE8BBF6F37BF8CD3AE38FA438977AF629D4F8BF84E8F3C1B875B88A7CF9E1F0DFE5E1799B9AEC40854125E570B7341472FEC0E211B32F9617F4854E9493ADC87F8FF1F789C4AF09FF2AC2FF127F17A29CA0E862FF0FF2DFAEF84377128F8EE351EDB718FE470B107A4EF6D0F83BF120F65718EA3349EEE91C76CE7739DB71873EFF2AB4946BB59987B8BCDB98F019C59F37287E3E47F17318E17FB43D07DF133F857B68C7F8C9724BCC2FC65C9E61F843777687DCEF05E4BB6E86F73E19DD511F1E7F475B92677829389B918573D89B4ABC04D95BF3B69FF133DDE53691EDFF9DCB5FAA88A994BF06F177E9B63B9047E77B74D7FCD5863F9AE1DF43D8778810B8D504F1C70643113A07F196D7E0774CC6F01F15FADEA287E7E1399BEA6427455329D50BC51E84FD1A74D28B24FBDF48F687C976B60BB6F3B6E0BBE3B83B1DBB4777BD3FB4DF41D9FDC192BF3FB07C9E74DC18718708FF7E238413FE1086FF4713F86DEA43F7BBE9A80D5A8C8023190CFF263676FA230D228E8715B36CAAE3AD14FA02073EE630BB6176CFE20EDDA31B133E12EECFB3C8768677CA5DEC8EC7F92EDD354ABAD4002C8FA79E3246E2318A3B078D11B58FF0EF16D15D4684802DDDE1F77D5FF8FF300475412FC1F5D0A2C287A9ED1FC8C35B336DAA228F2BB592B302F69FA149D942B2FF82AB6378D94F20DB798A6CA75BE71AA6EDFEDCC177B3CD3BC4CEA33CFEC89F8D10B68BF06F67F87BE2F6F74FC0E79B2148383E19DFAE1CE226D8FE9FEA55331E2EBE35DD5616F29392C99DC74E7786F83564F78BF81A8C937DAFF6B8D9663BF7DCDDBAFA6E97D813B4CD08FE9B1FC5ADEF9E84CFFAA1B8B1610CBB03AD13EE3F7F7A517E7BD9F68D294E15FE5F2839B9C7BFC7D55E0D91CF0B319F6AE00093BBF7B6B67B439BED5CBE6B3BF7D8FE2F461D7CD798ECE671DCDA3800DEEB8763EFE241A1C2FDF391BF3A20E07998E454EEFBA692C31EF53CE7B3DC9D39B067A71E449BEC3BC5CD0EB6D36EFBC7A722EAD014CEF6437E62BEDB8DF35DDF6F07C27AD5889249FD1F5F24D4607F7546709787E5E39DCA3C4D95AAF0B17CBCA4BA97DD17EEA9DD9D3BD72D5CDC34EF8F74DBB548B96C8104BB34C45CAE4584550D424F5C25DFED4BB6DF030E6B07541D9B37FCF69AD14FB1795BAF3FD0D7FD033C8C712A751BA4EC845DC8B7D5EE42CC14627E81F32BC8F33A06C9AD2864DD5222CD438124977AC4D9D571355798790D9C7FBC5E65B9E6A364B385CF78FE3473D8E72F0FEA3BE85F396BE5785836CAA9C4B9BBB21DBBD07390790D4765F0469447BB70BD5BD6B7657D4371808AEB59A5B8D523816AF6DB27229476DF9C90982D59ECC5306F9E3E74D67B639E7AE2DF355BE57918E954ECD05DC9B0B35C5B76EB7DC8A5B55CFFB92C5DCBF59DA5516A48821B10611BABB8B1C72AFFEA175B124EBFF69CCB2FB39FDDB27DE6B079425D622CFA0F2CC6C3C565236D732EF494F375D66310DBADD247DBFBC8FCCD6CA5CE5BB62658AC7EFDF6F19746591E7971E4CE7DB347ACDA34ED99F1423D6B24FA5FB0847AFAC46F73C75C75FBE4E9409B95432C49B65F13ADDC693A7CC6076307FE3BE7EDFFBFFE858BEF5875DCF78BF6B1BD45241ACE7625250BB6EF1776D6C8A67F5A9801D0AE17F66266BCB48775D8D92FEF17766EEDEBB2CF13F6E15DF6BE5DF69E5D76932EBB91708E48389796B2CBAE17F61661BFD3C67FDB2E7C01842F40B1B00B5F003D7F0E930BB7DF1176F038C00988ED611C5FA02F30E2E4A9E4E506BD516739F3FB78E1123DBFE33BAD7EFFFD763569C4D447A78C9AF6B769E3660E9D31D174F8CC29B346CC9C623A62FAE41923A64E9A366CEAE4A94F7EBFE1FBEEFFACF3362EFCC9E49DE7D7B2FEFEE85E8FF45E3C71D8949D2F4E7AC57AE1738B3D17BFBCC467D982377CDE5CF296CFAA15AB7D962E5DEA3E78F0E0C3F4BB6F8F183E62F0DEDDFBFE745EDEF5FA31E34513DEE8F54CFFE19306F61ABCEE9D991FBBEF59793CCB61DB4D55C0A918037B0F91E52BE5DE42C8A575DC3B880695DA101C142C5BF3EE9A20F65E8061F8A3E76E9AB3C778CDCC75BDFB76EBBF6042AF1907B7CE389A6BB3C2D3E0F275103CB74520F0783CA2AC5291EA26E1DE6254645473EF309AF506EEFD484B732BF7FE62F5CAB703D83BAAEFBFD9DCE361CF3EB4EC9CF1D07E23868DEF356DC377230E649E9CE2A8B35E741376EFDF86DBC61078EF8942885922622F6520E3661EF2A34A519D530BB5BC11AD2DAD68A5F3F9B72B4DF0F5B8257BFAE941A7A64D9E36F4F8FE13BF9BFFE68E7EEDB1A77A0C7EF5CB613BC24E4FB8D6CC667FE6B33D7069852FDC368420FC1CE3390F2589ECCD950A8A0AFE0D475D29233D94B22634D63643ABE4DF6ED4572A5BB76EDAC6DE62AD79E585397DFFD1D92B67BEDF8D64BDEA87670F27B5CFAAA7B8C16EB53F529C72519959CB7D27F71643D7CABD15697B0B505BD20479BE1E95122DCAB3B4A8106B5053A84143552332E3B235FD9FE87F5A78B377DF757C9DB9C9CA316B179D9CE0D8C0BF6771C3D5657E48BF960F4D9D9A74A921D9B6905CF5289516C323B810975DD2A0ACD4A1BEBC89CEE2DF20B0197E691A3FBFCF8F51A33C837F777060C7A1AC1EDD7B7C3F65FCA43EF73BFFE8FBE7C76C1D7922B88DEF9003C9A8CAAA476D41012AC555C8F6AB46495229B40A05921373601F5E87D3F61292BD967B4720CB96A1242E11F9811EC8BD6985DC5BEEC88BAC435E840A95F43DF1FE498DD3264D73EEDBBBCFB4AFFFFEC53D778BF5C3F7ECFB75A26BCBD5E57E90DC2C699FB5E48745A12A478134AF7A14C556C1D0748774A043AD548CB2182F485C7723C37A3932CE4D44A6C558882D47128D80F8C254483CEDB9D9736E98827BA36775C2B68CB9D62BB35F1CD2F5FC63E3ED12ADE778A332AD96B361554529EA8BF2A0AEAE261DABD020D772FE54230E43EE8DBD48B55A810CCB1928721C8472D7DEA8747D0415CEDDA9FEE1E725743F44F6A53910DF2E46A6AF1205D1D5A48F92D659D39E636F88161DDEB2B7930C6C5F736E2C13E6AC45E264C4D494E270411272F332C98FEA204B7647FAC50F9161351F45AE4BA1087B15AA882954073FC9CDC5EA84F91DAB63D8EC8BEBFB58F582C4F15BA47B16531D508BC218191CCE5FAB7CF289274F0C1D34E4991F3ED9D0EE8F81FB23B52DC2FB33556D354A1BEA90525B4177F2DBC8B45F8F0C9B3751E1F70D54093FA23169233F0F8D9ACBF57194C14FA0FE365F8FB0FE07ABA3F22FF1BD831CDB09C8BA7E19C9AE7590045673FDF9554BDF8E606F223F58BEAAFD0D529C756055C7199B465E80BC9B07906AB91CB2F07DD0E6DA4091B807557EAF41E6D18FCEEB0655D8586E96A0CD3A40189EE26A22560FB13A94F5BE58FD2F367F047957A620D53909098EB52888AA449C4F92A65F9F7EA784B7A5DCF2DBBFC3AB59A7E586F4EAAA3C245BAD419ECB1768C8BE0A6D811B0A3DDE4386F9206E16C77A3BDC2C2CB037D431CBB8DE962A622257CBB35A98D5F145767CFF447CDE08628B7EC871FE01F17605544B56A338BE129FBCF7197B93F8F1F2790BB9198BE3DA25A63EBBBEB95614E5AE4A3AF7C69D9AD8E3D0B3F9566518B4A58148B39E8BA4334F23DDAC3B72AD999E8D5077EB313A7706E9613ED70764B3394E076E7C0F84F510B2CD8DB8DE8DC46618B21C8F52FD2A8724408648CF38F59409539D860F1E3C75D7971BBAA5B8589BD87DB060BCC7C6A5F6E5C13F6BF445EEDC7CA7B936859B25E864B150645D414DEC3ED4C56C8632E63334C4AF853AEE5D3AFF15284306F276E8CDF7F04A1CF9FE1DEB3D72BDAFD33D21B53745BC6D04622E57A330AEECCE81ED877389F54F870F1ADC3EAF8C3CBB63A8F7E6376D55396EBAE6EA5818D86C462BE7E6030C079387BEF806B439E6D064EC873A817044BF06259BE30574E77B29EEBC0D165EE27B1099BFF2BD9FE453BD5070FD7D449AA721DD4B0629F9E3E471939DE8D897DBCECF743965E4F0C1BCB1A147D74734964434B5A84BD0DADCC0CD260CCA3C34554582CDBEB43996DCFC569DF8391A6216D1F943F9F37D781BE4CEBF2C9C7F963F9FF5FDB26D283E391C44B8059D1F5E89233B8F67D0B16FDEF36EE1A3574D438F7D775357233630DED97CCD509FC5CD04594F9ECDF73519FB88FF4F395F54860C8122A05BA7F3591C9274E09F9D1FFD4B37E43B8C439CA50762AF56C0E2E805A683155DCFCF74396EE2F4D102D3C48B071375D56906361B6896C743CFE679854ED0669B4193B60B6AB201160794214F77D6BF83A07F0B5EFF49AC7775C098EB5B451F781C256CEE7526116776DDFFFCB675EDE385A6A14737DCD494041AF46DB3208A059ACCC3684CD98C86D85550459A4219D4EFAEFDBBF231B0A3FDB3DE199BCBB39E6BD03663A4FEF62CA42E1BB1FB43F32C168F1F74BEE4C669936B1F2F308DB7D892D898EB68E0E7683CEF8D895F72BA57858FA758F068BBFF575CE7DF4FB0182C3E6F8CB433FCCC86F5DC4377F13DC7A0AD0350E43C0BDBDE7FD3FF4173BE4E72583BC73478FF1AEF86B423064DFADEF6192AC77BC82092BD11D78BAB16665FCCF6589C60BD4FD63B8C3BCCF7CC59BF3FE0C7EEF0DD3800413F8D699D36AAD7A60D4BC6F6FDBDF3C54E3F9A38AD7D717ECCA9D569AAB86F0CEAB8356477948342474119F8F8BDF1FF221FFF99EDB1BE71EC412344FECCF7EBFD37F784EF8681B0FE6028ABC2A6AD5F34FCA1EFE74E1FCC5814B8F3854045D8CB066EFE11D487E3BDCDEE59EC67B197BDDFCAB6E88EB473639174763EA2CF7C87F083AF93EEBBC16763AF26EBB70767CE1DD6E7C3F75EE8FF87DE2267DA2EEDE1F4C194455187C6A4D5F93F6950F81BB7EB9DF1CEF53F1D8620F7FA7A885DAD917A2D0A09F60588B4AE81EFC1E0C6AB6B4D25A7173F6DFFD5ACA7E76C5D32E8F13F5B9738BE376E91FF960181355E46064EEEBEB35019790CA509995CFF4F1C50D71AE798A309340BAEBEBECD2AF5C0D2B7CDF7CC1FFFCEDE05CF0E3EBF76EC5FAECBD2CD27F6705C337651F8EE2712CB5D8C9A8B3D5E6BCDF2F16E88B8E859E6B5EF44E6954F3FF7FA6DD59B27CC56BDB8DAEDBBD953CCD74DED7B69C3F47F7AFFCB65EDB8C9CE6BC77FE5FBC3C8AD573F1AB7E2C29A09538FAE18D73FD17CA1D17F533DCD3F6A3481D09A616D897DE41CF358B7613FDF49192E744CFA0A9D12930ED4CE6B98404A815A04421B858928088A4CB8B68552340F2D3DB9A3FF07A6D225BD]
Position=1
Point(onClose)
link(onCreate,11378072:doEnum,[(145,209)(145,125)])
link(onClose,7552381:doFileExists,[(142,216)(142,748)])
}
Add(ImageLoader,2955374,322,287)
{
DrawSource=2
link(onLoad,2955374:doDraw,[(365,293)(365,341)(310,341)(310,300)])
link(onDraw,8550930:doEvent1,[(538,300)(538,174)])
}
Add(StyleXP,12749349,77,140)
{
}
Add(Button,11254953,168,203)
{
Left=5
Top=415
Width=135
Height=60
Font=[Arial,8,0,0,204]
Hint="Шаг 1.Cканировать изображение. Качество картинки = время ожидания."
Caption="сканировать"
link(onClick,10831575:doScan,[])
}
Add(Button,8884848,168,350)
{
Left=225
Top=415
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Печатать отсканированное изображение"
Caption="отпечатать"
link(onClick,5452853:doEvent1,[])
}
Add(TWAIN,10831575,280,196)
{
Point(ShowUI)
link(onScan,8550930:doEvent2,[(516,202)(516,181)])
}
Add(Button,12602092,168,413)
{
Left=5
Top=505
Width=360
Height=55
Font=[Arial,8,0,0,204]
Hint="Производит автоматическое сканирование и печать документа"
Caption="ксерокопировать документ"
link(onClick,16595195:doScan,[])
}
Add(Hub,5452853,392,350)
{
InCount=2
OutCount=1
link(onEvent1,14309344:doPrint,[])
}
Add(Hub,8610803,336,406)
{
link(onEvent1,8550930:doEvent3,[(544,412)(544,188)])
link(onEvent2,5452853:doEvent2,[(380,419)(380,363)])
}
Add(SDialog,400248,350,511)
{
Filter="jpg"
Title="Сохранить изображение"
FileName=""
link(onExecute,7250159:doStrCat,[(404,517)(404,496)])
}
Add(Button,1337760,168,511)
{
Left=225
Top=445
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Сохранить в фаил отсканированное изображение"
Caption="в фаил"
link(onClick,400248:doExecute,[])
}
Add(Button,6737124,175,287)
{
Left=5
Top=480
Width=135
Hint="Шаг 1. Открыть картинку"
Caption="Открыть"
link(onClick,13703943:doExecute,[])
}
Add(Version,15168794,77,98)
{
Version="1"
Description="www.luftace.narod.ru"
E-mail="www.luftace.narod.ru"
}
Add(PictureStream,11121735,658,483)
{
Quality=0
Point(Quality)
link(Bitmap,13374349:Var1,[(671,215)])
link(Quality,10675324:Text,[(678,466)(692,466)])
}
Add(Button,5960373,168,630)
{
Left=225
Top=475
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Отправить e-mail c отсканированным изображением"
Caption="на e-mail"
link(onClick,14212387:doEvent1,[])
}
Add(EnumProcess,11378072,182,119)
{
link(onProcess,7293513:doPart,[])
link(ID,11378072:CurrentID,[(188,109)(176,109)(176,165)(188,165)])
}
Add(If_else,9148122,399,119)
{
Type=2
Op2=Integer(1)
link(onTrue,11378072:doKill,[(445,125)(445,185)(170,185)(170,139)])
link(Op1,3711754:Count,[(405,109)(370,109)(370,165)(335,165)])
}
Add(Counter,3711754,329,119)
{
link(onNext,9148122:doCompare,[])
}
Add(If_else,7296773,280,126)
{
Op2=String(Домашний МФУ.exe)
link(onTrue,3711754:doNext,[(323,132)(323,131)])
}
Add(FilePart,7293513,238,119)
{
NameWOExt=1
link(onName,7296773:doCompare,[(275,132)(275,135)])
}
Add(Edit,10675324,686,413)
{
Left=165
Top=450
Width=35
Font=[Arial,8,0,0,204]
Ctl3D=1
Text="75"
Alignment=2
ReadOnly=0
}
Add(ODialog,13703943,245,287)
{
Filter="jpg / bmp"
FileName=""
link(onExecute,2955374:doLoad,[])
}
Add(TrackBar,11665095,609,413)
{
Left=150
Top=415
Width=65
Hint="Шаг 2. Регулировка качества сохраняемого/отправляемого изображения"
Max=100
TickCount=5
Position=75
TickMarks=1
ThumbLength=10
link(onPosition,10675324:doText,[])
}
Add(Case,70443,217,721)
{
Value=Integer(1)
link(onTrue,2286603:doDelete,[(257,734)(257,738)])
}
Add(StrCat,7250159,427,490)
{
link(onStrCat,15368151:doEvent1,[])
link(Str2,3898701:Value,[(440,484)(447,484)])
}
Add(Memory,3898701,441,441)
{
Default=String(.jpg)
}
Add(FileTools,2286603,266,714)
{
DelToRecycle=1
link(FileName,5268257:Var1,[(272,710)(165,710)(165,705)])
}
Add(Hub,15368151,595,490)
{
InCount=2
link(onEvent1,11121735:doSave,[])
}
Add(Hub,14212387,350,630)
{
OutCount=3
link(onEvent1,16119271:doCurrentDir,[(382,636)(382,566)])
link(onEvent2,6036017:doStrCat,[(408,643)(408,622)])
}
Add(Memory,6830394,441,546)
{
Default=String(scanirovannaya.jpg)
}
Add(Hub,6957745,525,497)
{
link(onEvent1,15368151:doEvent2,[])
}
Add(GetDataEx,5268257,168,700)
{
link(Data,8164012:Var2,[(174,687)(433,687)])
}
Add(FileTools,7552381,175,721)
{
DelToRecycle=1
link(onEnd,70443:doCase,[(212,727)(212,727)])
link(FileName,5268257:Var2,[(181,715)(174,715)])
}
Add(Printer,14309344,770,350)
{
Point(doSettings)
Point(CurDPIX)
Point(CurDPIY)
link(onPrint,12127788:doResize,[])
}
Add(Img_Bmp,4383238,910,350)
{
X=1
DrawSource=2
Point(X)
Point(Y)
link(Bitmap,14309344:Context,[(916,340)(846,340)(846,396)(776,396)])
link(Y,2636911:reCalc,[(937,336)(951,336)])
}
Add(Image,4902926,812,168)
{
Top=-5
Width=370
Height=412
link(Bitmap,13694192:Bitmap,[(818,158)(772,158)(772,214)(727,214)])
}
Add(GetDataEx,13374349,805,210)
{
link(Data,4902926:ImageBitmap,[(811,207)(818,207)])
}
Add(Button,5229203,700,364)
{
Left=335
Top=417
Width=24
Caption="[ x ]"
link(onClick,14309344:doSettings,[(751,370)(751,363)])
}
Add(Hub,8550930,665,168)
{
InCount=3
OutCount=3
link(onEvent1,13694192:doLoad,[])
link(onEvent2,4902926:doClear,[])
link(onEvent3,4902926:doLoad,[(787,188)(787,174)])
}
Add(Dir,16119271,399,560)
{
Point(MyDocumentDir)
Point(doCurrentDir)
}
Add(StrCat,6036017,434,616)
{
link(onStrCat,6957745:doEvent1,[(496,622)(496,503)])
link(Str1,16119271:MyDocumentDir,[(440,604)(412,604)])
link(Str2,6830394:Value,[])
}
Add(GetDataEx,8164012,427,665)
{
link(Data,6036017:Result,[(433,657)(440,657)])
}
Add(Bitmap,13694192,721,168)
{
Point(Width)
Point(Height)
}
Add(Screen,6461272,868,168)
{
Point(CurDPIX)
Point(CurDPIY)
}
Add(MathParse,347937,819,287)
{
MathStr="((21 / 2.54) * %1) / (%1 / %2) - 1"
ResultType=0
Point(reCalc)
link(X1,7679868:Var2,[(825,262)(818,262)])
link(X2,1403054:Var1,[(832,222)])
}
Add(MathParse,9429064,889,287)
{
DataCount=4
MathStr="((21 / 2.54) * %1) / (%1 / %2) * (%4 / %3) - 1"
ResultType=0
Point(reCalc)
link(X1,16044466:Var1,[(895,218)(888,218)])
link(X2,2781845:Var2,[(902,267)(895,267)])
link(X3,817129:Var2,[(909,274)(902,274)(902,261)])
link(X4,12158718:Var2,[(916,265)(909,265)])
}
Add(Resize,12127788,854,350)
{
link(onResult,4383238:doDraw,[])
link(Bitmap,13374349:Var2,[(860,284)(811,284)])
link(Width,347937:reCalc,[(867,336)(832,336)])
link(Height,9429064:reCalc,[(874,336)(902,336)])
}
Add(GetDataEx,7679868,812,224)
{
Angle=3
link(Data,14309344:CurDPIX,[(799,229)(799,396)(783,396)])
}
Add(MathParse,2636911,938,287)
{
DataCount=6
MathStr="((((29.7 / 2.54) * %5) / (%5 / %6)) - (((21 / 2.54) * %1) / (%1 / %2) * (%4 / %3))) / 2 + 1"
ResultType=0
Point(reCalc)
link(X1,16044466:Var3,[(944,229)])
link(X2,2781845:Var3,[(951,243)])
link(X3,817129:Var3,[(958,257)])
link(X4,12158718:Var3,[(965,236)])
link(X5,14309344:CurDPIY,[(972,277)(881,277)(881,396)(790,396)])
link(X6,1403054:Var3,[(979,222)])
}
Add(GetDataEx,16044466,882,224)
{
Angle=3
link(Data,7679868:Var3,[])
}
Add(GetDataEx,2781845,889,238)
{
link(Data,6461272:CurDPIY,[(895,221)(902,221)])
}
Add(GetDataEx,817129,896,252)
{
Angle=3
link(Data,13694192:Width,[(734,257)])
}
Add(GetDataEx,12158718,903,231)
{
Angle=3
link(Data,13694192:Height,[(741,236)])
}
Add(GetDataEx,1403054,882,217)
{
link(Data,6461272:CurDPIX,[(888,211)(895,211)])
}


Dad2016 писал(а):
1. двухстороннее сканирование.

Возможно реализовать.
Dad2016 писал(а):
2. сканирование в PDF.

Поставь виртуальный принтер и отправляй на печать на него в формат .pdf.
Dad2016 писал(а):
3. dpi сканирования.

Точно не могу сказать но в схеме есть качество сохранения.
Вот что пишут про dpi https://forum.hiasm.com/topic/12915

Редактировалось 5 раз(а), последний 2021-12-13 18:02:10
карма: 2
0
Ответов: 322
Рейтинг: 8
#3: 2021-12-20 07:25:28 ЛС | профиль | цитата
envoy_sky писал(а):
у себя в примерах

Это видел и изучил, но этого мало.
За программу с форума огромное спасибо, буду разбираться.
По факту получается уже понимался вопрос по улучшению функционала кубиков, но дальше разговоров дело не пошло.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#4: 2021-12-20 10:09:51 ЛС | профиль | цитата
Dad2016 писал(а):
По факту получается уже понимался вопрос по улучшению функционала кубиков, но дальше разговоров дело не пошло.

Ну надо ведь хоть ресурсы самостоятельно поискать для предложения, под KOL далеко не всё можно портировать без напряга, и это нужно понимать...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 322
Рейтинг: 8
#5: 2021-12-21 08:09:01 ЛС | профиль | цитата
andrestudio писал(а):
нужно понимать...

Большая часть участников форума вообще не понимают основ программирования и что такое KOL!
Изначально среда программирования HiAsm асоциируется с составлением программ без понимания написания кода и т.д.
Просто как в лего (сотавление программ кубиками).
Я сам последний раз програмировал на basic в далёком 1992 году.
В основном здесь задают вопросы функционала кубиков среды программирования.

Редактировалось 1 раз(а), последний 2021-12-21 08:09:47
карма: 0

0
Ответов: 5227
Рейтинг: 587
#6: 2021-12-21 10:29:05 ЛС | профиль | цитата
Отмазка это всё, но я всё же думаю что понимание того что это не всё так просто как кажется оно появилось.
Поэтому и нет соответствующих кубиков.

p.s Решение на DLL у меня уже есть. Завтра может уже появится без DLL.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 5227
Рейтинг: 587
#7: 2021-12-23 23:15:05 ЛС | профиль | цитата
Попыхтеть пришлось но всё получилось.
К сожалению FPC с WIA работать не хочет ни в какую но спокойно работает через VBJScript (там даже проще все настройки предварительные выставить)
Плющит PDF c хорошим сжатием без dll
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 322
Рейтинг: 8
#8: 2021-12-24 14:26:33 ЛС | профиль | цитата
andrestudio писал(а):
не всё так просто как кажется

полностью согласен
карма: 0

0
Ответов: 783
Рейтинг: 168
#9: 2021-12-25 16:36:51 ЛС | профиль | цитата
Dad2016 писал(а):
Решился сделать программу для сканирования документов в среде HiAsm

Вот мой вариант (VBJScript и печать на виртуальном принтере 'Microsoft Print to PDF')

Add(MainForm,4378171,147,147)
{
Width=348
Height=326
link(onCreate,5107036:doStrCat,[])
}
Add(Button,4982637,189,252)
{
Left=50
Top=240
Width=145
Height=25
Caption="Сканировать"
link(onClick,13939950:doString,[])
}
Add(VBJScript,9069530,336,252)
{
WorkPoints=#11:##SetScript|
Script=#0:|0:|
UseName=0
}
Add(FormatStr,13939950,252,252)
{
DataCount=9
Mask="Set CommonDialog = CreateObject("WIA.CommonDialog")\r\nSet DeviceManager = CreateObject("WIA.DeviceManager")\r\nSet filesys = CreateObject("Scripting.FileSystemObject")\r\nSet DevInfo = DeviceManager.DeviceInfos(1)\r\nSet Device = DevInfo.Connect\r\n\r\nDevice.Items(1).Properties("6146").Value = %2\r\nDevice.Items(1).Properties("6147").Value = %3\r\nDevice.Items(1).Properties("6148").Value = %4\r\nDevice.Items(1).Properties("6149").Value = %5\r\nDevice.Items(1).Properties("6150").Value = %6\r\nDevice.Items(1).Properties("6151").Value = %7\r\nDevice.Items(1).Properties("6152").Value = %8\r\nDevice.Items(1).Properties("4104").Value = %9\r\n\r\nSet img = CommonDialog.ShowTransfer(Device.Items(1), "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}", true)\r\nimg.SaveFile "%1"\r\nCall CommonDialog.ShowPhotoPrintingWizard("%1")\r\nfilesys.DeleteFile "%1"\r\n"
link(onFString,9069530:##SetScript,[])
link(Str1,5107036:Result,[(258,205)(216,205)])
link(Str2,937155:Text,[])
link(Str3,11072214:Text,[(272,201)(307,201)])
link(Str4,2749968:Text,[(279,208)(349,208)])
link(Str5,13018292:Text,[(286,215)(391,215)])
link(Str6,12934951:Text,[(293,222)(433,222)])
link(Str7,2157395:Text,[(300,229)(475,229)])
link(Str8,6461700:Text,[(307,236)(517,236)])
link(Str9,8310606:Text,[(314,243)(559,243)])
}
Add(Dir,715798,196,112)
{
}
Add(StrCat,5107036,210,161)
{
Str2="image.bmp"
link(Str1,715798:TempDir,[])
}
Add(Label,8807276,259,119)
{
Left=60
Top=25
Width=250
Height=17
Caption="colors:4 is Black-white,gray is 2, color 1 (Color Intent)"
AutoSize=1
}
Add(Edit,937155,259,161)
{
Left=5
Top=20
Text="1"
}
Add(Label,15200907,301,119)
{
Left=60
Top=50
Width=250
Height=17
Caption="dots per inch/horizontal"
AutoSize=1
}
Add(Edit,11072214,301,161)
{
Left=5
Top=45
Text="600"
}
Add(Label,13718847,343,119)
{
Left=60
Top=75
Width=250
Height=17
Caption="dots per inch/vertical"
AutoSize=1
}
Add(Edit,2749968,343,161)
{
Left=5
Top=70
Text="600"
}
Add(Label,242171,385,119)
{
Left=60
Top=100
Width=250
Caption="x point where to start scan"
AutoSize=1
}
Add(Edit,13018292,385,161)
{
Left=5
Top=95
Text="0"
}
Add(Label,15685127,427,119)
{
Left=60
Top=125
Width=250
Caption="y point where to start scan"
AutoSize=1
}
Add(Edit,12934951,427,161)
{
Left=5
Top=120
Text="0"
}
Add(Label,13924702,469,119)
{
Left=60
Top=150
Width=250
Caption="horizontal exent DPI x inches wide"
AutoSize=1
}
Add(Edit,2157395,469,161)
{
Left=5
Top=145
Text="5100"
}
Add(Label,15818640,511,119)
{
Left=60
Top=175
Width=250
Caption="vertical extent DPI x inches tall"
AutoSize=1
}
Add(Edit,6461700,511,161)
{
Left=5
Top=170
Text="7002"
}
Add(Label,8818080,553,119)
{
Left=60
Top=200
Width=250
Caption="bits per pixel"
AutoSize=1
}
Add(Edit,8310606,553,161)
{
Left=5
Top=195
Text="8"
}

Если выдаст ошибку "Индекс вышел за пределы диапазона." значит у вас не подключен сканер.

Dad2016 писал(а):
1. двухстороннее сканирование.

Мой сканер не поддерживает двухстороннее сканирование поэтому я не могу проверить будет работать или нет.

Если я не ошибаюсь, то в Windows10 установлен принтер 'Microsoft Print to PDF'.
Прикладываю схему для установки/удаления виртуального принтера ‘Microsoft Print to PDF' (если у кого-то он отсутствует).

Add(MainForm,2953706,21,105)
{
Width=234
Height=103
}
Add(Button,4982637,112,112)
{
Left=5
Top=5
Width=200
Caption="Установка PDF принтера"
link(onClick,9357162:doString,[])
}
Add(Button,15440676,112,161)
{
Left=5
Top=30
Width=200
Caption="Удаление PDF принтера"
link(onClick,8322333:doString,[])
}
Add(FormatStr,9357162,182,112)
{
Mask="Enable-WindowsOptionalFeature -online -FeatureName Printing-PrintToPDFServices-Features"
link(onFString,11560740:doWork2,[])
}
Add(FormatStr,8322333,182,161)
{
Mask="Disable-WindowsOptionalFeature -online -FeatureName Printing-PrintToPDFServices-Features"
link(onFString,11560740:doWork3,[(235,167)])
}
Add(WinExec,1409572,287,105)
{
FileName="powershell"
Mode=0
Action="runas"
}
Add(HubEx,11560740,231,112)
{
link(onEvent,1409572:doShellExec,[])
}

карма: 15

0
Ответов: 783
Рейтинг: 168
#10: 2021-12-26 15:39:43 ЛС | профиль | цитата
Пусть будет ещё и такой вариант.

Add(Label,74978,21,21)
{
Width=562
Height=40
Align=2
Caption=""
AutoSize=1
}
Add(MainForm,2953706,91,21)
{
Width=578
Height=482
link(onCreate,15284928:doConsoleExec,[])
}
Add(TWAIN,26525,161,140)
{
ModalUI=0
Point(ShowUI)
link(onScan,4623376:doEvent1,[])
link(ShowUI,4991216:Checked,[])
}
Add(Button,127296,98,147)
{
Left=190
Top=10
Width=100
Caption="Сканировать"
link(onClick,26525:doScan,[])
}
Add(CheckBox,4991216,161,84)
{
Left=35
Top=10
Width=130
Caption="Настройка Сканера"
}
Add(WinExec,15284928,161,21)
{
FileName="rundll32"
Param="printui.dll,PrintUIEntry /y /n "Microsoft Print to PDF""
Mode=0
Point(doConsoleExec)
}
Add(Button,2936943,98,210)
{
Left=520
Top=10
Width=25
Caption="?"
link(onClick,6536758:doExec,[])
}
Add(WinExec,6536758,161,210)
{
FileName="printui.exe"
Point(doConsoleExec)
}
Add(TempFileStream,4908782,329,175)
{
Prefix="scan-"
Extention=".bmp"
link(onCreate,14752091:doString,[])
link(Stream,16217774:Var3,[(335,117)])
}
Add(FormatStr,14752091,392,175)
{
DataCount=1
Mask="Start-Process –FilePath '%1' –Verb Print "
link(onFString,6164623:doShellExec,[])
}
Add(WinExec,6164623,448,168)
{
FileName="powershell"
Mode=0
Action="runas"
}
Add(MemoryStream,3611026,273,70)
{
}
Add(GetDataEx,16217774,273,112)
{
link(Data,3611026:Stream,[])
}
Add(Hub,4623376,224,140)
{
OutCount=4
link(onEvent1,3611026:doClear,[(259,146)(259,83)])
link(onEvent2,626077:doWrite,[])
link(onEvent3,4908782:doCreate,[(263,160)(263,181)])
link(onEvent4,6751998:doLoad,[(256,167)(256,216)])
}
Add(BitmapStream,626077,273,140)
{
link(Stream,16217774:Var2,[])
}
Add(Image,6751998,273,210)
{
Left=285
Top=220
Align=5
}

карма: 15

2
Голосовали:andrestudio, Dad2016
Ответов: 5227
Рейтинг: 587
#11: 2021-12-27 18:12:01 ЛС | профиль | цитата
Dad2016, учись из 0 вариантов сразу 3
Вот Gunta на delphi бы начал шпиговать, цены бы не было его находчивости.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 322
Рейтинг: 8
#12: 2021-12-29 08:01:50 ЛС | профиль | цитата
Gunta, огромное спасибо.
карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)