Forum » Programiranje » VB.net Excel v Tif
VB.net Excel v Tif
saule ::
Zdravo,
Pobijam se z tiskanjem Excela preko MS Document Writer v Tif... Word mi "sprinta" brez problema:
Excel-a pa nikakor:
Napaka, ki jo vrne: Exception from HRESULT: 0x800A03EC
Občutek imam, da zgolj ne znam poslati parametra za tisk v datoteko, saj v kolikor ne vnesem ničesar (oApp.ActiveSheet.PrintOut()) mi natisne Tif brez težav. V tem postopku je seveda težava, da moram ročno izbrati mesto kam naj Tif shrani..
Prebral sem si http://msdn.microsoft.com/en-us/library..., ampak mi vseeno ne uspe.
Pobijam se z tiskanjem Excela preko MS Document Writer v Tif... Word mi "sprinta" brez problema:
Dim AppWord As Word.Application = New Word.Application Dim objCurrentDoc As Word.Document = New Word.Document objCurrentDoc = AppWord.Documents.Add("C:\Pic2.doc") AppWord.ActivePrinter = "Microsoft Writer" bjCurrentDoc.PrintOut(PrintToFile:=True, OutputFileName:="c:\test2.tif") ojCurrentDoc.Close() AppWord.Quit()
Excel-a pa nikakor:
Dim oApp As New Excel.Application() oApp.ActiveSheet.PrintOut(PrintToFile:="C:\temp.tif", OutputFileName:=True)
Napaka, ki jo vrne: Exception from HRESULT: 0x800A03EC
Občutek imam, da zgolj ne znam poslati parametra za tisk v datoteko, saj v kolikor ne vnesem ničesar (oApp.ActiveSheet.PrintOut()) mi natisne Tif brez težav. V tem postopku je seveda težava, da moram ročno izbrati mesto kam naj Tif shrani..
Prebral sem si http://msdn.microsoft.com/en-us/library..., ampak mi vseeno ne uspe.
majlo ::
Dim oApp As New Excel.Application() oApp.ActiveSheet.PrintOut(PrintToFile:="C:\temp.tif", OutputFileName:=True)
Je možno, da si zamenjal :
Zgoraj za vord imaš imaš:
bjCurrentDoc.PrintOut(PrintToFile:=True, OutputFileName:="c:\test2.tif")
spodaj za excel pa:
oApp.ActiveSheet.PrintOut(PrintToFile:="C:\temp.tif", OutputFileName:=True)
Probaj dat tako kot zgoraj:
oApp.ActiveSheet.PrintOut(PrintToFile:=True, OutputFileName:="C:\temp.tif")
saule ::
Sem poskušal obračati, pa ni nobenih sprememb... Iz zgornjega linka sem poskusil tudi vnesti vse parametre, ki so na voljo (v podanem vrstnem redu) pa je še vedno isto.
majlo ::
Probaj z spreminjanjem culture infa. Vem da me je to enkrat hebalo pri excelu
Na začetku suba, kjer shranjuješ:
na koncu pa nazaj
Na začetku suba, kjer shranjuješ:
Dim oldCI As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
na koncu pa nazaj
System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
Zgodovina sprememb…
- spremenilo: majlo ()
saule ::
Sem poskusil, pa ni pomagalo. Sem se potem še igral z regional settings, pa še vedno nič. Po naključju sem našel rešitev:
Kaj točno pomenijo ti parametri mi še ni čisto jasno, ampak se mi zdi da mi bo prejšnji link razložil...
Hvala vseeno!
oApp.ActiveSheet.PrintOut(1, 2, 1, False, PrintToFile:=True, Collate:=False, PrToFileName:="c:\MyData.tif")
Kaj točno pomenijo ti parametri mi še ni čisto jasno, ampak se mi zdi da mi bo prejšnji link razložil...
Hvala vseeno!
saule ::
Brez
ne dela [:)]
Dim oldCI As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
ne dela [:)]
saule ::
Iščem v vseh datotekah na strežniku nek logotip, pa sem prišel do zaključka da bo vrjetno najlažje z OCR...
prtenjam ::
Pozdravljen,
Tako kot je koda zapisana ne more delati, saj želiš izpisati dokument, ki ga ni. Ali si del kode spustil ali pa sploh nisi odprl dokumenta:
Tako kot je koda zapisana ne more delati, saj želiš izpisati dokument, ki ga ni. Ali si del kode spustil ali pa sploh nisi odprl dokumenta:
Dim oApp As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application Dim document As Microsoft.Office.Interop.Excel.Workbook document = oApp.Workbooks.Open("c:\neka.txt") .... in potem .... oApp.ActiveSheet.PrintOut
Matjaž Prtenjak
https://mnet.si
https://mnet.si
Zgodovina sprememb…
- spremenil: prtenjam ()
saule ::
Nisem napisal celotne kode, ker je dejansko bil problem samo v parametru za PrintOut(). Celotna je sedaj moja taka:
'Set regional settings to English Dim oldCI As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") 'EXCEL Dim oApp As New Excel.Application() oApp.Visible = False oApp.UserControl = False Dim oBooks As Object = oApp.Workbooks Dim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US") oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci) Try oBooks = oApp.Workbooks.Open(FilePath) oApp.ActiveSheet.PrintOut(1, 2, 1, False, PrintToFile:=True, Collate:=False, PrToFileName:="c:\MyData.tif") Catch ex As Exception MsgBox(ex.Message) Finally 'Quit oBooks.Close(False) NAR(oBooks) oApp.Workbooks.Close() NAR(oApp.Workbooks) oApp.Quit() NAR(oApp) GC.Collect() End Try 'Reset regional settings System.Threading.Thread.CurrentThread.CurrentCulture = oldCI Sub NAR(ByVal o As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(o) Catch ex As Exception Finally o = Nothing End Try End Sub
prtenjam ::
In je sedaj ok? Problem je bil v lokalnih nastavitvah? bug?
Matjaž Prtenjak
https://mnet.si
https://mnet.si
saule ::
Sedaj je OK. Problema sta dejansko 2 (pomota v prejšnjem postu):
- Za PrintOut v datoteko je potrebno v Excelu zapisat (vsaj) takole: oApp.ActiveSheet.PrintOut(1, 2, 1, False, PrintToFile:=True, Collate:=False, PrToFileName:="c:\MyData.tif")
- Kot je rekel Majlo je potreno nastavit culture info na en_US
- Za PrintOut v datoteko je potrebno v Excelu zapisat (vsaj) takole: oApp.ActiveSheet.PrintOut(1, 2, 1, False, PrintToFile:=True, Collate:=False, PrToFileName:="c:\MyData.tif")
- Kot je rekel Majlo je potreno nastavit culture info na en_US
saule ::
Mogoče še malo pomoči...
Sedaj odprem Tif, naredim OCR potem pa nikakor ne znam zapret te datoteke.
Odprem:
Zaprem (vsaj tako sem mislil):
Zadeva ne deluje, ker je dokument dejansko še vedno odprt - do njega ne morem dostopati. Napaka je: document in use by another process.
Sedaj odprem Tif, naredim OCR potem pa nikakor ne znam zapret te datoteke.
Odprem:
Dim miWord() As MODI.Word Dim i, j As Long Dim str As String Dim Cont As Long Dim IMG As Long Dim miDoc As MODI.Document miDoc = New MODI.Document miDoc.Create("c:\MyData.tif")
Zaprem (vsaj tako sem mislil):
miDoc.Close() GC.Collect() GC.WaitForPendingFinalizers()
Zadeva ne deluje, ker je dokument dejansko še vedno odprt - do njega ne morem dostopati. Napaka je: document in use by another process.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Težava pri vnosu decimalnega števila v bazo (C#, Access)Oddelek: Programiranje | 995 (712) | nemonemo |
» | [WPF] Vrednost Textbox kot "angle" v AxisAngleRotation3DOddelek: Programiranje | 801 (736) | saule |
» | Visual Studio - koda za prikaz OS?Oddelek: Programiranje | 1105 (872) | detroit |
» | c# regularni izrazOddelek: Programiranje | 2041 (1739) | darkolord |
» | [C#] Prosim pomagajte! Potrebujem program, ki bi pobiral podatke iz ene straniOddelek: Programiranje | 2767 (2377) | David1994 |