This is a print accounting and management system for Windows based on Type-3 printer model. It has been used as the campus-wide print accounting system client at one of the Japanese university since 2018.
-
MariaPrintInf is a printer INF file and PPD files for PostScript virtual printers. There are four types of printers available. See mariaprt.inf for detials.
-
MariaPrintMon is a port monitor that redirects a print data stream to a .ps file and the DEVMODE structure to a .ini file. The basename is automatically generated by random. Here we call the stored directory the virtual spool.
-
MariaPrintTray is a task tray icon / program that monitors newly created files in the virtual spool and launches the manager program for preview it and print it.
-
MariaPrintManager is a preview and print program for a PostScript file. It supports user interface for authenticate a user and accounting by page counts.
-
MariaPrintProcessor is a print processor to allow or deny print based on the document name in a print spool.
-
MariaPrintaSetup is a installer.
-
MariaPrintConfigurator is a helper program for the installer. It configure which printers will manage by the system.
This program is worked on Windows with .NET 4.5 and later. We have developed on Windows 10 version 1803 64bits environment.
After the build all projects, you can find a installer named as MariaPrintSetup.msi under the directory MariaPrintSetup. If you have a valid code-signing certificate then you can sign the installer by the command below.
signtool sign /a MariaPrintSetup.msi
The manual installation procedures are below but we recommend using the installer.
After the build DLL files, you can install the port monitor by commands below in the command prompt run as Administrator. Then you can able to select port named MARIAPRINT: in property page of a printer.
net stop spooler
copy mariaprintmon.dll %SystemRoot%\System32\
reg add HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\MariaPrintMon /v Driver /t REG_SZ /d mariaprintmon.dll /f
net start spooler
The virtual spool directory of the port monitor is able to customize and is stored in the registry value. The tasktray program read the registry value same as the port monitor and monitor that directory.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\MariaPrintMon\Settings" /v "OutputDirectory" /t REG_SZ /d "C:\directoryname" /f
The tasktray program kickstart a program saved in the registry value. The argument is a name of file created new in the virtual spool.
reg add "HKLM\SOFTWARE\Marbocub\MariaPrintSystem" /v "PsShell" /t REG_SZ /d "MariaPrintManager.exe" /f
The preview program print postscript file to a printer saved in the registry value.
reg add "HKLM\SOFTWARE\Marbocub\MariaPrintSystem" /v "Printer" /t REG_SZ /d "Your Real Printer" /f
This system contains only the Windows client and not contains accounting databases and servers. Because we know that different sites or campuses have different functional requirements for the accounting database. As a solution, the system uses Web API to connect to an accounting server. So you can be flexibly implement the accounting server for site requirements by using Web framework and your own accounting database.
If you would like to build a low-cost campus-wide print accounting system at Japanese university, please contact us for helps you.
Copyright (c) 2018 @marbocub marbocub@gmail.com, All rights reserved.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, see LICENSE.
Copyright (c) 1990-2003 Microsoft Corporation All Rights Reserved.
Modified by @marbocub marbocub@gmail.com, All Rights Reserved.
The MICROSOFT LIMITED PUBLIC LICENSE, see MariaPrintProcessor/license.rtf.
The Icon made by Freepik from www.flaticon.com is licensed by CC 3.0 BY.