Bagaimana cara menghapus formulir printer standar sistem?

12

Pada Windows ada bentuk printer standar sistem yang tidak dapat dihapus dari dialog Print Server Properties. Apakah ada cara lain untuk menghapusnya? Kami tidak akan pernah menggunakan ukuran halaman seperti Envelope, B5 (JIS), US Std Fanfold, dll. Dan saya ingin menyelamatkan pengguna (dan saya sendiri!) Agar tidak perlu menelusuri daftar besar kebisingan.

Kotak properti server cetak memiliki tombol hapus yang tidak dapat digunakan

Server cetak kami adalah Windows Server 2003 jika itu membuat perbedaan.

matt wilkie
sumber
Menghapus formulir sistem mungkin bukan opsi. Mengapa tidak mencoba dan mengatur formulir default untuk setiap baki pada printer daripada harus menggulir ke bawah setiap kali?
ServerFaulter
@ServerFaulter, saya memerlukan formulir yang sama untuk beberapa printer (dan mereka hanya memiliki satu baki untuk sebagian besar; sebagian besar adalah komplotan roll-feed format besar).
matt wilkie
2
Ini sepenuhnya ghetto, tetapi Anda bisa memberi nama formulir 000 MyForm - MyPageSizeatau yang serupa.
voretaq7
@ voretaq7 kurasa itu pilihan terbaik, sebenarnya.
Dan
2
@Dan Itu menghindari masalah, tetapi tentu saja itu tidak menyelesaikannya. Anda benar-benar HARUS dapat menghapus templat yang tidak perlu, tetapi jika MS akan membuat tugas itu mengacaukannya.
voretaq7

Jawaban:

5

Pikiran pertama saya adalah untuk melihat apakah ini dapat dicapai dengan menggunakan Windows API, tetapi menurut situs web ini tentang Win32 Printer Forms API, bahkan tidak mungkin untuk menghapus formulir sistem secara terprogram:

Seseorang tidak dapat DeleteForm () pada formulir bawaan: gagal dengan ERROR_INVALID_PARAMETER.

Pikiran kedua saya adalah menemukan nama bentuk yang relatif unik, seperti US Std Fanfolddan mencari seluruh registri. Anehnya, tanaman entri di sejumlah tempat. Saran saya, oleh karena itu, akan membangun mesin 32 bit kosong (32 bit untuk menghindari kebingungan dengan kunci bayangan) dan pergi ke kota pada beberapa kunci tersebut. Jika Anda berhasil, harus mudah dipindahkan ke mana pun Anda perlu melakukan ini.

Namun, harus dikatakan, bahwa mengingat seberapa banyak Microsoft jelas tidak ingin Anda melakukan ini, Anda membuka diri untuk masalah dukungan dan kompatibilitas.

Dan
sumber
Halaman API formulir tertaut ditulis dengan sangat baik. Meskipun saya bukan pengembang, itu membuat banyak hal lebih jelas bagi saya. Terima kasih.
matt wilkie
2

Bentuk kertas standar adalah bagian dari driver printer dan hanya dapat dihapus secara manual dari file yang sesuai.

Berikut panduan bagaimana saya bisa melakukannya:

1.Buka CMD sebagai Administrator.

2. masuk "printui / s / t2" (tanpa tanda kutip)

3.Dalam jendela opend, pilih printer, yang bentuk kertasnya harus dihapus, dan klik Properties di bagian bawah.

4. Cari file yang terdaftar di explorer di bawah jalur yang dinyatakan (mungkin C: \ Windows \ System32 \ spool \ drivers \ x64 \ 3)

5. Buat salinan-cadangan semua file ini (misalnya dalam folder di Desktop)

6. Buka masing-masing file asli dengan editor (satu per satu). Jika itu berisi kode yang dapat dibaca, tekan Ctrl + F (untuk membuka pencarian) dan masukkan salah satu bentuk kertas yang lebih menonjol, yang harus dihapus (mis. Kartu Pos, Legal, Surat ...) Jika tidak ada kata yang dicari ditemukan, tutup file tanpa menyimpan, dan coba file selanjutnya. (Dalam kasus saya, saya menemukannya dalam file dengan ekstensi ".gpd" und ".inx" untuk printer fisik, ".PPD" untuk PDF-Creator saya)

7.Ketika entri ditemukan: Harus ada paragraf dengan blok kode yang terdaftar untuk semua formulir kertas. Beberapa contoh:

    [JAPANESE_POSTCARD]
    MediaType=8.1055
    InputBin=7

atau

    *Option: JAPANESE_POSTCARD_90x90x50x95
    {
        *Name: ""
    }

atau

    *Option: JAPANESE_POSTCARD
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *Constraints: LIST(Duplex.VERTICAL, Duplex.HORIZONTAL)
        *Constraints: InputBin.4
        *PageDimensions: PAIR(4724, 6992)
        *PrintableArea: PAIR(4412, 6680)
        *PrintableOrigin: PAIR(156, 156)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *CursorOrigin: PAIR(156, 156)
            }
            *case: LANDSCAPE_CC270
            {
                *CursorOrigin: PAIR(4568, 156)
            }
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: DOC_SETUP.2
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: PAGE_SETUP.2
        }
    }

Hapus semua blok seperti itu untuk semua formulir kertas yang tidak diinginkan. Kemungkinan besar ada lebih dari satu paragraf yang berisi blok yang sama, jadi terus mencari file dan ulangi, sampai tidak ada yang ditemukan. Kemudian simpan dan tutup file tersebut.

8.Setelah setiap file berubah, buka dokumen apa pun (mis. Word, Excel ...), dan periksa apakah formulir kertas yang tidak diinginkan masih tercantum dalam properti pencetakan printer itu.

-jika masih ada: kembali ke Langkah 6, cari file selanjutnya.

-jika tidak: selamat! (Kembali ke Langkah 3, jika ada lebih banyak printer untuk menghilangkan formulir yang tidak diinginkan).

-Jika ada masalah: timpa file yang terakhir diedit dengan cadangan. (Mungkin Anda membuat kesalahan, jadi coba lagi)

Semoga ini membantu. Bersulang!

Stallnig
sumber
1

Di server cetak itu sendiri formulir berada di registri:

HKLM \ System \ CurrentControlSet \ Control \ Print \ Forms

(CATATAN: Saya sendiri tidak pernah menghapus formulir dari sini sehingga saya akan membuat cadangan kunci terlebih dahulu sebelum menghapus dan menguji hasilnya).

Pembersih
sumber
Saya menghapus entri di bawah tombol itu dan reboot tetapi mereka masih muncul dalam daftar (Printer dan Faks> Properti Server> Formulir).
matt wilkie
... juga ada banyak formulir yang tercantum dalam dialog Server Properties yang tidak muncul di bawah kunci registri itu.
matt wilkie
1
Itulah yang harus saya lakukan untuk menghilangkan formulir A2 kedua yang tidak bisa saya hapus. Terima kasih!
Stefan Schmiedl
1

Mulai proses "Manajemen Cetak" (printmanagement.msc).

Di bawah Server / Formulir Cetak, Anda dapat menghapus formulir Printer tetapi bukan Formulir bawaan.

Saya belum menemukan metode untuk menghapus formulir Bawaan karena saya juga tidak suka melihat semua "bunyi" di drop-down itu.

BlakBat
sumber
1
Ini adalah antarmuka yang jauh lebih baik daripada Properti Printer untuk mengelola beberapa bentuk Printer atau Pengguna, terima kasih. Sayang sekali built-in tidak dapat dihapus atau setidaknya disembunyikan dari tampilan normal.
matt wilkie