 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Sob Jan 23, 2010 1:22 pm Naslov sporočila: xps2pdf |
|
|
Lep pozdrav.
Ker velikokrat, ko narišem kakšno vezje, v različnih programih za TIV ni funkcije za izvoz v pdf datoteko, ampak xps datoteko, sem si iz spleta snel enostavno konzolno aplikacijo za tovrstno pretvorbo, xps2pdf. Odločil sem se, da iz te aplikacije naredim enostavno windows form aplikacijo, ker me moti vsakokratno ročno vpisovanje direktorijev in komand v cmdju.
Zadeve sem se lotil v visual basic-u. Zanima me, kako bi z gumbom klical datoteko xps2pdf.exe, ki pobere atribute iz dveh textboxov (prvi za izvorno datoteko .xps, drugi pa za izhodno datoteko .pdf) in izvede akcijo. Torej, katere kontrolnike potrebujem in kako se zadeva izvede. Mogoče ima kdo kakšen podoben primer..?
Komanda za enostavno pretvorbo ene xps datoteke v pdf datoteko za ta program v konzoli je:
Koda: |
xps2pdf.exe (pri čemer moramo biti v direktoriju, kjer je ta program) [izvorna .xps datoteka] [izhodna .pdf datoteka] |
Evente za gumbe za brskanje sem že napisal. Tukaj bi morda dodal še filter, da bi lahko za prvo datoteko izbral samo datoteko s končnico .xps, pri drugem pa .pdf. Kako bi to naredil?
Koda: |
Public Class xps2pdf
Private Sub ButtonBrskajIzvorna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonBrskajIzvorna.Click
OpenFileDialog1.ShowDialog()
OpenFileDialog1.ReadOnlyChecked = True
If Windows.Forms.DialogResult.OK Then
TextBoxIzvorna.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub ButtonBrskajIzhodna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonBrskajIzhodna.Click
OpenFileDialog1.ShowDialog()
OpenFileDialog1.ReadOnlyChecked = True
If Windows.Forms.DialogResult.OK Then
TextBoxIzhodna.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub ButtonPretvori_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPretvori.Click
End Sub
End Class |
Tukaj pa še screen programčka...
Opis: |
|
Velikost datoteke: |
27.95 KB |
Pogledana: |
0 krat |

|
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
Jaka57 Moderator



Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5820 Aktiv.: 24.51 Kraj: Grosuplje
|
Objavljeno: Sob Jan 23, 2010 1:29 pm Naslov sporočila: |
|
|
Bullzip printer krasno pretvarja kakršne koli datoteke v pdf iz vseh programov. In zastonj je(Freeware)!
Dela tudi na Win7 (64).
Najdeš ga tukaj.
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Sob Jan 23, 2010 1:52 pm Naslov sporočila: |
|
|
Dobro, nekaj se iz tega želim tudi naučiti
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Sob Jan 23, 2010 2:25 pm Naslov sporočila: |
|
|
Malo bližje sem že:
Koda: |
Public Class xps2pdf
Private Sub ButtonBrskajIzvorna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonBrskajIzvorna.Click
OpenFileDialog1.ShowDialog()
OpenFileDialog1.ReadOnlyChecked = True
If Windows.Forms.DialogResult.OK Then
TextBoxIzvorna.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub ButtonBrskajIzhodna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonBrskajIzhodna.Click
SaveFileDialog1.ShowDialog()
If Windows.Forms.DialogResult.OK Then
TextBoxIzhodna.Text = SaveFileDialog1.FileName
End If
End Sub
Private Sub ButtonPretvori_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPretvori.Click
Dim izvorna As String
Dim izhodna As String
izvorna = TextBoxIzvorna.Text
izhodna = TextBoxIzhodna.Text
Shell("F:\xps2pdf\xps2pdf.exe -izvorna -izhodna")
End Sub
End Class |
Ko kliknem na gumb za pretvarjanje v pdf, se mi na hitro zažene nek exe file (mislim da prav ta, ki ga želim), vendar očitno brez parametrov, zato se nič ne zgodi. Kako naj vključim parametre drugače, kot zdaj?
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Ned Jan 24, 2010 10:20 am Naslov sporočila: |
|
|
Stric google pomagal. Malo močneje sem ga moral pocukat za rokav.
Koda: |
Dim izvorna As String
Dim izhodna As String
izvorna = TextBoxIzvorna.Text
izhodna = TextBoxIzhodna.Text
Shell("F:\xps2pdf\xps2pdf.exe " & izvorna & " " & izhodna, AppWinStyle.Hide) |
Fora je bila v tem, da sem pozabil vstaviti presledke med potjo programa in parametri, ki jih potrebuje in mi je javljalo napako, da ne najde programa, ker je vse vzelo kot en string brez presledkov. Sedaj lepo deluje. Izdelal sem si prvo uporabno zadevo za windows okolje
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
airwolf Član


Pridružen-a: Sre 28 Maj 2008 17:17 Prispevkov: 2219 Aktiv.: 10.66 Kraj: Polhov Gradec
|
Objavljeno: Ned Jan 24, 2010 4:36 pm Naslov sporočila: |
|
|
Samo, tole bo delovalo samo na disku F.
Koda: |
F:\xps2pdf\xps2pdf.exe |
A da bi naredil to tako, da bi program sam našel mapo v kateri je xps2pdf.exe se ne da?
_________________ LP Gašper |
|
Nazaj na vrh |
|
 |
kljuka Član


Pridružen-a: Sob 03 Jan 2009 19:37 Prispevkov: 81 Aktiv.: 0.40 Kraj: Maribor
|
Objavljeno: Ned Jan 24, 2010 6:05 pm Naslov sporočila: |
|
|
Koda: |
OpenFileDialog1.Filter = "XPS datoteke (*.xps)|*.xps" |
|
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Ned Jan 24, 2010 8:42 pm Naslov sporočila: |
|
|
@kljuka, hvala. Kako bi v filter še dodal, da mi za default ime datoteke ne bi pisalo "OpenFileDialog1", ampak samo "*".
@airwolf, to se da, direktorij sem navedel zato, ker program uporabljam samo zase, če bi ga napisal za koga drugega bi pa tole optimiziral. Išči pod funkcijami "My.Computer.FileSystem.GetFiles", na msdna imaš primere. Meni sicer to ni uspelo, ampak mi je vseeno ker ne rabim. Če pa želiš, pa lahko sam poizkusiš
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
kljuka Član


Pridružen-a: Sob 03 Jan 2009 19:37 Prispevkov: 81 Aktiv.: 0.40 Kraj: Maribor
|
Objavljeno: Ned Jan 24, 2010 11:18 pm Naslov sporočila: |
|
|
Pred prikazovanjem napišeš:
Koda: |
OpenFileDialog1.FileName = "PacNekaDatoteka.txt" |
|
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Pon Jan 25, 2010 6:34 pm Naslov sporočila: |
|
|
Hvala
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Pon Jan 25, 2010 7:18 pm Naslov sporočila: |
|
|
Malo sem mislil dodati k programu, da bi mi po končanem konvertiranju odprlo pdf datoteko.
Zakaj mi ta vrstica ne deluje:
Koda: |
Shell((My.Computer.FileSystem.GetFiles("C:\", True, (SaveFileDialog1.FileName)))) |
Napiše mi:
Koda: |
Error 1 Value of type 'System.Collections.ObjectModel.ReadOnlyCollection(Of String)' cannot be converted to 'String'. C:\Users\Blaz\Documents\Vb_projekti\xps2pdf\xps2pdf\Form1.vb 31 15 xps2pdf
|
PS.: Kako bi pri iskanju datotek z getfiles dodal več direktorijev, ne samo C:\ ?
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
kljuka Član


Pridružen-a: Sob 03 Jan 2009 19:37 Prispevkov: 81 Aktiv.: 0.40 Kraj: Maribor
|
Objavljeno: Pon Jan 25, 2010 9:28 pm Naslov sporočila: |
|
|
GetFiles vrne množico. Poleg tega, zakaj kompliciraš?
Shell(SaveFileDialog1.FileName)
|
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Pon Jan 25, 2010 11:57 pm Naslov sporočila: |
|
|
Zato:
Opis: |
|
Velikost datoteke: |
244.53 KB |
Pogledana: |
17 krat |

|
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
kljuka Član


Pridružen-a: Sob 03 Jan 2009 19:37 Prispevkov: 81 Aktiv.: 0.40 Kraj: Maribor
|
Objavljeno: Tor Jan 26, 2010 12:14 am Naslov sporočila: |
|
|
Ahaaa ... Ja ja ja ...
Koda: |
Process.Start(SaveFileDialog1.FileName) |
|
|
Nazaj na vrh |
|
 |
ljudsko Član


Pridružen-a: Pon 31 Mar 2008 8:19 Prispevkov: 1184 Aktiv.: 5.63 Kraj: Koroška-Mežica
|
Objavljeno: Tor Jan 26, 2010 5:10 pm Naslov sporočila: |
|
|
Deluje, ampak problem je v tem, da program nekaj časa potrebuje, da skonvertira datoteko, zato je še ne najde in javi napako. Kako bi ga "prisilil" v majhno zakasnitev (cca. 2 sekundi)...?
Ali pa če bi v zanki preverjal, če datoteka obstaja, ko jo najde (ko je kreirana), jo odpre..nekakšen if-else
_________________ return;
brake; |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|