skip to Main Content

Dacă nu aveţi instalată o imprimantă, dar aveţi un coleg/vecin/prieten care are aşa ceva şi vă permite să o folosiţi, puteţi folosi Dropbox pentru a imprima documente, prezentări, etc.

Cum procedăm ?
– descărcaţi un script de aici: ePrint;
– îl dezarhivaţi şi îl rulaţi.
Acesta va crea în folder-ul Dropbox un sub-folder: PrintQueue.

Codul sursă al scriptului este:

  • ‘Remote Printing through Dropbox
  • ‘Written by Amit Agarwal http://www.labnol.org/
  • Option Explicit
  • On Error Resume Next
  • Const WAIT_TIME  = 5000 ‘5 seconds
  • Const PRINT_TIME = 5000 ‘5 seconds
  • Dim WshShell, fso, configFile, objReadFile, str64, strPath, ApplicationData
  • Dim dbWatchDir, attFolder, objShell, objFolder, colItems, objItem, dbLogDir, logFolder, doneFolder
  • Set WshShell = CreateObject(„Wscript.Shell”)
  • Set fso = CreateObject(„Scripting.FileSystemObject”)
  • ApplicationData = WshShell.ExpandEnvironmentStrings(„%APPDATA%”)
  • ‘Find the Dropbox Folder Location
  • configFile = ApplicationData & „\Dropbox\host.db”
  • If fso.FileExists( configFile ) Then
  • Set objReadFile = fso.OpenTextFile( configFile, 1)
  • Do Until objReadFile.AtEndOfStream
  • str64 = objReadFile.ReadLine
  • Loop
  • strPath = Base64Decode(str64)
  • ‘WScript.Echo „Your Dropbox folder is located at ” & strPath
  • Else
  • WScript.Echo „Looks like Dropbox is not installed on this computer.” &  VbCrLf & „Please install Dropbox and run this script
  • again.”
  • WScript.Quit()
  • End If
  • dbWatchDir = strPath & „\Attachments”
  • If Not fso.FolderExists (dbWatchDir) Then
  • Set attFolder = fso.CreateFolder (dbWatchDir)
  • WScript.Echo „Created a folder to hold your new print jobs – ” & dbWatchDir
  • End If
  • dbLogDir = dbWatchDir & „\Print_Log”
  • If Not fso.FolderExists (dbLogDir) Then
  • Set logFolder = fso.CreateFolder (dbLogDir)
  • WScript.Echo „Created a folder to hold processed jobs – ” & dbLogDir
  • End If
  • Do While True
  • Set objShell = CreateObject(„Shell.Application”)
  • Set objFolder = objShell.Namespace(dbWatchDir)
  • Set colItems = objFolder.Items
  • doneFolder = dbLogDir & „\” & DateDiff(„s”, „1/1/2010”, Now)
  • For Each objItem in colItems
  • If Not objItem.IsFolder Then
  • If Not fso.FolderExists (doneFolder) Then
  • Set logFolder = fso.CreateFolder (doneFolder)
  • WScript.Echo „Created a folder to save processed jobs – ” & doneFolder
  • End If
  • objItem.InvokeVerbEx(„Print”)
  • WScript.Echo „Now printing: ” & objItem.Name
  • WScript.Sleep(PRINT_TIME)
  • fso.MoveFile dbWatchDir & „\” & objItem.Name & „*”, doneFolder
  • end if
  • Next
  • WScript.Sleep(WAIT_TIME)
  • Set objShell = nothing
  • Set objFolder = nothing
  • Set colItems = nothing
  • Loop
  • ‘ Decodes a base-64 encoded string (BSTR type).
  • ‘ 1999 – 2004 Antonin Foller, http://www.motobit.com
  • Function Base64Decode(ByVal base64String)
  • Const Base64 = „ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”
  • Dim dataLength, sOut, groupBegin
  • base64String = Replace(base64String, vbCrLf, „”)
  • base64String = Replace(base64String, vbTab, „”)
  • base64String = Replace(base64String, ” „, „”)
  • dataLength = Len(base64String)
  • If dataLength Mod 4 <> 0 Then
  • Err.Raise 1, „Base64Decode”, „Bad Base64 string.”
  • Exit Function
  • End If
  • For groupBegin = 1 To dataLength Step 4
  • Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut
  • numDataBytes = 3
  • nGroup = 0
  • For CharCounter = 0 To 3
  • thisChar = Mid(base64String, groupBegin + CharCounter, 1)
  • If thisChar = „=” Then
  • numDataBytes = numDataBytes – 1
  • thisData = 0
  • Else
  • thisData = InStr(1, Base64, thisChar, vbBinaryCompare) – 1
  • End If
  • If thisData = -1 Then
  • Err.Raise 2, „Base64Decode”, „Bad character In Base64 string.”
  • Exit Function
  • End If
  • nGroup = 64 * nGroup + thisData
  • Next
  • nGroup = Hex(nGroup)
  • nGroup = String(6 – Len(nGroup), „0”) & nGroup
  • pOut = Chr(CByte(„&H” & Mid(nGroup, 1, 2))) + _
  • Chr(CByte(„&H” & Mid(nGroup, 3, 2))) + _
  • Chr(CByte(„&H” & Mid(nGroup, 5, 2)))
  • sOut = sOut & Left(pOut, numDataBytes)
  • Next
  • Base64Decode = sOut
  • End Function
  • ‘Please visit www.labnol.org to download the latest version of this code

———————————————————————————————————————

După ce realizaţi aceşti paşi, accesaţi-vă contul de Dropbox online, pentru a modifica permisiunile de partajare ale noul folder creat.
Partajaţi-l doar cu persoana respectivă, deoarece, dacă l-aţi lăsa public, oricine ar putea folosi imprimanta.

Acum, după ce am configurat totul, pentru a imprima un document, fişier pdf, workbook, tot ce trebuie să faceţi este să executaţi un Save As direct în folder-ul PrintQueue.
În acel moment, imprimanta va primi un nou job şi va începe imprimarea documentului, prezentării, etc.

Printarea documentelor folosind Dropbox

———————————————————————————————————————

Note suplimentare:

  • trebuie să aveţi un cont pe Dropbox (totul este gratuit);
  • procesul de imprimare va avea loc pe imprimanta implicită a celui care o partajează;
  • scriptul ePrint.vbs trebuie să fie activ pentru a fi posibilă operaţia de imprimare (îl adăugaţi la Startup).
(Visited 6 times, 1 visits today)

Cosmin Tătaru

Pasionat de blogging și tehnologie încă din 2009, Cosmin este aici să vă ajute să vă creșteți vânzările și productivitatea punând tehnologia la treabă pentru dumneavoastră.

Suport-Clienti
Mergeți sus