国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp 微信小程序小票打印機(jī)打印教程(超詳細(xì)講解) 完整代碼,下載后可直接使用

這篇具有很好參考價(jià)值的文章主要介紹了uniapp 微信小程序小票打印機(jī)打印教程(超詳細(xì)講解) 完整代碼,下載后可直接使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

天夢(mèng)星官網(wǎng) (tmxkj.top)https://tmxkj.top/#/? 編程資源

直接上代碼:

           ly_text:"點(diǎn)擊搜索",
		   connected_ly:false,//藍(lán)牙按鈕是否顯示
	       blue_list_ly:false,//藍(lán)牙連接列表顯示
           discoveryStarted: false,
		   devices: [],//設(shè)備列表
	    	name: '',
	    	deviceId: '',
	       chs: [],
	    	canWrite: false,
	
/**
			 * 第一步
			 * @param {打開(kāi)藍(lán)牙}
			 * @param {搜索}
			 */
			openBluetoothAdapter() {
				if (!wx.openBluetoothAdapter) {
					wx.showModal({
						title: '提示',
						content: '當(dāng)前微信版本過(guò)低,無(wú)法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。'
					})
					return
				}
				/**
				 * 初始化藍(lán)牙模塊
				 */
			this.openBluetoothAdapters()
			},
			/**
			 * 第二步
			 * @param {初始化藍(lán)牙模塊}  
			 * @param {請(qǐng)求打開(kāi)藍(lán)牙}
			 */
			openBluetoothAdapters() {
				this.ly_text="搜索設(shè)備中"
				uni.openBluetoothAdapter({//請(qǐng)求打開(kāi)藍(lán)牙情況
					success: (res) => {
						this.startBluetoothDevicesDiscovery();//打開(kāi)藍(lán)牙后 開(kāi)始搜索
					},
					fail: (err) => {
						if (err.errCode === 10001) {
							uni.showModal({
								title: '錯(cuò)誤',
								content: '未找到藍(lán)牙設(shè)備,請(qǐng)打開(kāi)藍(lán)牙重試!',
								showCancel: false
							});
							uni.onBluetoothAdapterStateChange(res => {
								console.log('請(qǐng)求打開(kāi)藍(lán)牙失敗再次請(qǐng)求', res);
								if (res.available) {
									uni.onBluetoothAdapterStateChange(() => {});
									this.startBluetoothDevicesDiscovery();
								}
							})
						}
					}
				});
			},
			/**
			 * 第三步
			 * @param {開(kāi)始搜尋附近的藍(lán)牙外圍設(shè)備}  
			 */		
			startBluetoothDevicesDiscovery() {
				this.discoveryStarted = true
				uni.startBluetoothDevicesDiscovery({
					success: (res) => {
						this.onBluetoothDeviceFound();//藍(lán)牙搜索成功后監(jiān)聽(tīng)搜索
					},
					fail: (res) => {
						console.log('搜索藍(lán)牙失敗', res)
					}
				})
			 },
			
			/**
			 * 第四步
			 * @param {監(jiān)聽(tīng)尋找到新設(shè)備的事件} 
			 * @param {最終得到最后的藍(lán)牙連接列表}
			 * @param {搜素事件到此結(jié)束}
			 */
			onBluetoothDeviceFound() {
				uni.onBluetoothDeviceFound(res => {
					//res:發(fā)現(xiàn)的設(shè)備列表
					res.devices.forEach(device => {
						if (!device.name && !device.localName) {
							return
						}
						let foundDevices = this.devices;
						let idx = this.inArray(foundDevices, 'deviceId', device.deviceId);
						let data = {};
						if (idx === -1) {
							this.devices.push(device);
						} else {
							this.devices[index] = device;
						}
					})
					if(this.devices.length>=1){
						this.blue_list_ly=true;
						this.ly_text="發(fā)現(xiàn)設(shè)備"
					}else{
						// uni.showToast({
						// 	title:'暫無(wú)搜索內(nèi)容',
						// 	icon:'error'
						// })
						this.ly_text="未發(fā)現(xiàn)設(shè)備"
					}
					console.log('發(fā)現(xiàn)的設(shè)備列表:', this.devices);
				})
			},
			/**
			 * 第五步
			 * @param {手動(dòng)點(diǎn)擊連接藍(lán)牙事件}
			 * @param {創(chuàng)建連接藍(lán)牙}
			 * @param {如果已經(jīng)連接過(guò)可直接連接}
			 */			
			_createBLEConnection(e) {
				uni.createBLEConnection({
					deviceId:e.deviceId,
					success: (res) => {
						this.blue_list_ly=false;
						this.connected_ly=true;
						this.ly_text="已連接";
						this.name = e.name;
						this.deviceId =e.deviceId;
						//獲取藍(lán)牙
						this.getBLEDeviceServices(e.deviceId);
						uni.setStorage({
							key: LAST_CONNECTED_DEVICE,
							data: {
								name:e.name,
								deviceId:e.deviceId
							}
						})
					},
					fail: (err) => {
						this.connected_ly =false;
						this.ly_text="連接失敗";
					}
				})
				this.stopBluetoothDevicesDiscovery();
			},				
			/**
			 * 第六步
			 * @param {藍(lán)牙連接成功關(guān)閉監(jiān)聽(tīng)搜索}
			 * @param {藍(lán)牙搜索比較消耗資源}
			 */	
		    stopBluetoothDevicesDiscovery() {
		    	wx.stopBluetoothDevicesDiscovery({
		    		complete: () => {
		    			console.log('停')
		    			this.discoveryStarted = false
		    		}
		    	})
		    },
			/**
			 * 第七步
			 * @param {藍(lán)牙連接成功關(guān)閉搜索}
			 * @param {功能}
			 */	
			closeBLEConnection(e) {
				uni.closeBLEConnection({
					deviceId: e.deviceId
				})
			   this.connected_ly=false;
			},
			/**
			 * 第八步
			 * @param {藍(lán)牙功能查詢}
			 * @param {藍(lán)牙連接成功后}
			 * @param {找到主要服務(wù)功能}
			 */	
			getBLEDeviceServices(deviceId) {
				uni.getBLEDeviceServices({
					deviceId,
					success: (res) => {
						for (let i = 0; i < res.services?.length; i++) {
							if (res.services[i].isPrimary) {
								this.getBLEDeviceCharacteristics(deviceId, res.services[i].uuid);
								return
							}
						}
					}
				})
			},
			/**
			 * 第九步
			 * @param {藍(lán)牙功能特征查詢}
			 * @param {主要功能的特性}
			 * @param {找到主要服務(wù)功能的特征}
			 * @param {到此步驟連接結(jié)束}
			 */	
			getBLEDeviceCharacteristics(deviceId, serviceId) {
				uni.getBLEDeviceCharacteristics({
					deviceId,
					serviceId,
					success: (res) => {
						for (let i = 0; i < res.characteristics?.length; i++) {
							const item = res.characteristics[i]
							if (item.properties.write) {
								this.canWrite = true;
								this._deviceId = deviceId
								this._serviceId = serviceId
								this._characteristicId = item.uuid
							   uni.setStorage({
							   	key: "BlueKey",
							   	data: {
									_close:true,
									_name:this.name,
									_deviceId : deviceId,
									_serviceId : serviceId,
									_characteristicId : item.uuid,
							   	}
							   })
								break;
							}
						}
						setTimeout(()=>{
							if (this.canWrite) {
							  this.connected_ly=true;
							  this.ly_text="已連接"
						} else {
							uni.showToast({
								icon: 'error',
								title: '您當(dāng)前選擇的設(shè)備不支持打印功能,請(qǐng)重新選擇!',
								duration: 3000
							})
						}
						},1000)
					},
					fail: (res) => {
						console.error('獲取藍(lán)牙特征失敗', res)
					}
				})
			},
			/**
			 * 第十步
			 * @param {編寫(xiě)藍(lán)牙需要打印的內(nèi)容}
			 * @param {打印按鈕的事件}
			 * @param {打印功能前準(zhǔn)備}
			 */	
			writeBLECharacteristicValue() {
			   var that=this
		     	setTimeout(() => {
				let printerJobs = new PrinterJobs();
				let dayun1 = '當(dāng)事人 (單位):' + this.listObj?.contactinfo?.client + '\r\n' +
							'被處罰人姓名:' + this.listObj?.contactinfo?.name + '\r\n' +
							'被處罰人性別:' + this.listObj?.contactinfo?.sex + '\r\n' +
							'被處罰人聯(lián)系方式:' + this.listObj?.contactinfo?.iPhone + '\r\n' +
							'被處罰人身份證號(hào)碼:' + this.listObj?.contactinfo?.idcard + '\r\n' 
							
				printerJobs
					.setSize(2, 2)
					.setAlign('CT')
					.print('! 0 100 203 100 1\r\n法決定書(shū)\r\nPRINT\r\n')
					.setSize(1, 1).setAlign('LT')
					.print(dayun1)
				
			
			
				let buffer = printerJobs.buffer();
				// console.log('ArrayBuffer', 'length: ' + buffer.byteLength, ' hex: ' + this.ab2hex(
				// 	buffer));
				// 1.并行調(diào)用多次會(huì)存在寫(xiě)失敗的可能性
				// 2.建議每次寫(xiě)入不超過(guò)20字節(jié)
				// 分包處理,延時(shí)調(diào)用
				const maxChunk = 20;
				const delay = 20;
				for (let i = 0, j = 0, length = buffer.byteLength; i < length; i += maxChunk, j++) {
					let subPackage = buffer.slice(i, i + maxChunk <= length ? (i + maxChunk) : length);
					setTimeout(this._writeBLECharacteristicValue, j * delay, subPackage);
				}
			
				this.lanyardShow = false;
				this.$refs.uUpload.clear();
				this.clearFormData();
				uni.showToast({
					title: '打印成功',
					icon: 'success'
				})
			}, 5000)
									
			},
						
			/**
			 * 第十一步
			 * @param {最終的打印}
			 * @param {由第十步驟調(diào)用}
			 * @param {輪詢打印}
			 * @param {打印機(jī)輸出}
			 * @param {打印結(jié)束}
			 */	
			_writeBLECharacteristicValue(buffer) {
				wx.writeBLECharacteristicValue({
					deviceId: this._deviceId,
					serviceId: this._serviceId,
					characteristicId: this._characteristicId,
					value: buffer,
					success(res) {
						console.log('最后執(zhí)行打印了===========', res)
					},
					fail(res) {
						console.log('打印失敗', res)
					}
				})
			},
			/**
			 * 第十二步
			 * @param {藍(lán)牙相關(guān)事件}
			 * @param {和以上打印不銜接}
			 * @param {關(guān)閉藍(lán)牙}
			 */		
			closeBluetoothAdapter() {
				wx.closeBluetoothAdapter()
				this.discoveryStarted = false
			},
			/**
			 * 第十三步
			 * @param {判斷藍(lán)牙是否已經(jīng)連接}
			 * @param {只支持wx. 不支持uni.}
			 * @param {只支持安卓, 不支持蘋(píng)果}
			 */	
			isBluetoothDevicePaired(){
				  var that =this
					wx.isBluetoothDevicePaired({
					deviceId:uni.getStorageSync("BlueKey")?._deviceId,
				    success(res){
						console.log(res,"判斷連接成功")
						that.connected_ly=true;
						that.ly_text="連接成功"
					},fail(err){
						console.log(err,"判斷連接失敗");
						that.ly_text="點(diǎn)擊搜索"
					}
				})
				
			},	
			/**
			 * 第十四步
			 * @param {藍(lán)牙相關(guān)資源事件}
			 * @param {搜索 資源 打印}
			 * @param {轉(zhuǎn)換}
			 */	
			inArray(arr, key, val) {
				for (let i = 0; i < arr.length; i++) {
					if (arr[i][key] === val) {
						return i
					}
				}
				return -1
			},
			ab2hex(buffer) {	// ArrayBuffer轉(zhuǎn)16進(jìn)度字符串示例
				const hexArr = Array.prototype.map.call(
					new Uint8Array(buffer),
					function(bit) {
						return ('00' + bit.toString(16)).slice(-2)
					}
				)
				return hexArr.join(',')
			},	
			str2ab(str) {
				let buffer = new ArrayBuffer(str?.length)
				let dataView = new DataView(buffer)
				for (let i = 0; i < str?.length; i++) {
					dataView.setUint8(i, str?.charAt(i).charCodeAt(0))
				}
				return buffer;
			},
			/**
			 * 第十五步
			 * @param {進(jìn)入頁(yè)面就自動(dòng)連接}
			 * @param {該方法存在BUG}
			 * @param {目前該方法先不投放使用}
			 */	
		    createBLEConnectionWithDeviceId(e) {
		      //創(chuàng)建藍(lán)牙鏈接
		       uni.openBluetoothAdapter({
		       	success: (res) => {
		       		let ly_data={
		       			name:uni.getStorageSync("BlueKey")?._deviceId,
		       			deviceId:uni.getStorageSync("BlueKey")?._name
		       		}
		       		this._createBLEConnection(ly_data);
		       	},
		       	fail: (res) => {
		       		if (res.errCode === 10001) {
		       			uni.showModal({
		       				title: '錯(cuò)誤',
		       				content: '未找到藍(lán)牙設(shè)備, 請(qǐng)打開(kāi)藍(lán)牙后重試。',
		       				showCancel: false
		       			});
		       			this.connected_ly=false
		       		} else if (res.errCode === -1 || res.errCode === 10010) { //已連接
		       			this.connected_ly = true;
		       		}
		       	}
		       })
		    },
		    
			/**
			 * 第十六步
			 * @param {獲取藍(lán)牙適配狀態(tài)}
			 * @param {在藍(lán)牙連接成功后調(diào)用查看}
			 * @param {判斷連接用}
			 */	
			getBluetoothAdapterState() {
				wx.getBluetoothAdapterState({
					success: (res) => {
						console.log(res)
						if(res.available){
							this.connected_ly=true
							this.ly_text="已連接"
							console.log("藍(lán)牙已經(jīng)連接",res)
						}else{
							this.connected_ly=false;
							this.ly_text="點(diǎn)擊連接"
							console.log("藍(lán)牙已經(jīng)斷開(kāi)")
						}
					}
				})
			},
				
			

html

	<view class="ly-cass-box">
		  <view class="ly-cass"  @click="openBluetoothAdapter()">
		   <image src="../../static/bluetooth.png" style="width: 70rpx;height: 70rpx;" />
	 	  </view>
		 <text class="ly-text">{{ly_text}}</text>
		</view>
		
		<u-popup v-model="blue_list_ly" mode="center" border-radius="14" mask-close-able=false closeable=true
			width=85%>
			<view style="margin: 80rpx 20rpx 30rpx 20rpx;">
			<view class="has-devices-list-container">
				<view class="tip-search">搜索到的設(shè)備</view>
				<view class="devices-list">
					<view v-for="(item,index) in devices" :key="index" class="devices-item">
						<view>{{item.name ? item.name : item.localName}}</view>
						<u-button size="mini" type="warning" @click="_createBLEConnection(item)">
							連接
						</u-button>
					</view>
				</view>
			</view>
			</view>
		</u-popup>
	

css

	.ly-cass-box{
		width: 150rpx;
		height: auto;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		position: fixed;
		bottom:70rpx;
		right: 50rpx;
		z-index: 500;
	}
	.ly-cass{
		width: 120rpx;
		height: 120rpx;
		background-color: #f4f4f5;
		border-radius: 50%;
        display: flex;
		align-items: center;
		justify-content: center;
	}
	.ly-text{
	  margin-top: 20rpx;
	  background-color: #eee;
	  padding: 2rpx 8rpx 2rpx 8rpx;
	  border-radius: 6rpx;
	  font-size: 25rpx;
	}
	

 	.no-open-gps-tip {
		width: 100%;
		display: flex;
		flex-direction: row;
		align-items: center;
		color: #fa3534;
		font-weight: 400;
		font-size: 30rpx;
		background: rgba(235, 207, 48, 0.8);
		padding: 30rpx;
	}
	.devices-item {
		width: 100%;
		display: flex;
		justify-content: space-between;
		margin-top: 20rpx;
		align-items: flex-end;
		padding-bottom: 5rpx;
		border-bottom: 1px solid #f4f4f5;
	}

	.devices-list {
		width: 100%;
		padding: 0 20rpx;
		display: flex;
		flex-direction: column;

	}

	.tip-search {
		width: 100%;
		margin: 20rpx 0;
		text-align: left;
		font-size: 16px;
		color: #2979ff;
	}

	.has-devices-list-container {
		width: 100%;
		display: flex;
		flex-direction: column;
		margin: 30rpx 0;
	}



打印執(zhí)行的方法(這個(gè)方法已經(jīng)封裝好調(diào)用即可)

const PrinterJobs = require('./common/printer/printerjobs');//根據(jù)自己放的路徑調(diào)用
const printerUtil = require('./common/printer/printerutil');//根據(jù)自己放的路徑調(diào)用

目錄結(jié)構(gòu)

uniapp實(shí)現(xiàn)打印功能,uni-app,微信小程序,小程序,javascript

?核心代碼代碼下載

備注:核心代碼在頭頂上的zip當(dāng)中

使用邏輯:

1.用戶第一次進(jìn)來(lái)點(diǎn)擊連接,只用連接一次,只要用戶不關(guān)閉程序就不會(huì)斷開(kāi),可接著打印,

2.如果已經(jīng)連接需要在主動(dòng)加載函數(shù)里面調(diào)用判斷是否已經(jīng)連接文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-610380.html

到了這里,關(guān)于uniapp 微信小程序小票打印機(jī)打印教程(超詳細(xì)講解) 完整代碼,下載后可直接使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序連接藍(lán)牙漢印HM-A300L標(biāo)簽打印機(jī)

    微信小程序連接藍(lán)牙漢印HM-A300L標(biāo)簽打印機(jī)

    需求: 以下文章針對(duì)打印一講解,打印二的代碼放在最后。 打印一 打印二 參考文章: 微信小程序?qū)崿F(xiàn)藍(lán)牙打印 打印機(jī)CPCL編程參考手冊(cè)(CPCL 語(yǔ)言) 藍(lán)牙打印機(jī)CPCL編程手冊(cè)~漢印HM-A300 無(wú)用小知識(shí): A300系列:先將打印機(jī)關(guān)機(jī)然后裝好紙,同時(shí)按住屏幕左右兩邊的按鍵不放,

    2024年01月18日
    瀏覽(29)
  • js、PHP連接外賣小票機(jī)打印機(jī)方案(調(diào)用佳博、芯燁等)

    js、PHP連接外賣小票機(jī)打印機(jī)方案(調(diào)用佳博、芯燁等)

    前言: ????????目前開(kāi)發(fā)需要用到電腦直接連接外賣小票機(jī)打印小票,查閱各種資料,使用 6612345瀏覽器 終于解決了這個(gè)問(wèn)題。 效果: ????????PHP、js直接連接小票機(jī)并且自動(dòng)出票。 支持的小票機(jī): ?????????目前測(cè)試可以的有:電腦A4打印機(jī)、佳博GP58MBIII(USB直

    2024年02月11日
    瀏覽(27)
  • 惠普m1136打印機(jī)驅(qū)動(dòng)程序安裝教程

    惠普m1136打印機(jī)驅(qū)動(dòng)程序安裝教程

    惠普m113打印機(jī)是一款功能強(qiáng)大的多功能打印機(jī),它能夠打印、復(fù)印、掃描和傳真等。如果你要使用這款打印機(jī),你需要下載并安裝驅(qū)動(dòng)程序,以確保它能夠在你的計(jì)算機(jī)上正常工作。在本文中,我們將介紹如何下載和安裝惠普m1136打印機(jī)驅(qū)動(dòng)程序。 一.惠普m1136打印機(jī)驅(qū)動(dòng) 惠

    2024年02月09日
    瀏覽(98)
  • 前端js,uniapp使用printease連接打印機(jī)打印,打印命令生成

    接下來(lái)我們將使用printease實(shí)現(xiàn)前端js,uniapp打印。 此外,連接打印機(jī)的方式有很多種,這里并不會(huì)涉及到,該庫(kù)只是提供了一種打印機(jī)指令的生成方式,你可以將生成的指令發(fā)送到打印機(jī),打印機(jī)會(huì)執(zhí)行一次印刷過(guò)程。 這個(gè)教程是關(guān)于tspl指令的,如果你使用的其他指令,可

    2024年02月13日
    瀏覽(26)
  • mac Canon打印機(jī)連接教程(附打印機(jī)驅(qū)動(dòng)下載)

    mac Canon打印機(jī)連接教程(附打印機(jī)驅(qū)動(dòng)下載)

    網(wǎng)上大多是windows版驅(qū)動(dòng)和安裝教程,mac鏈接相對(duì)參考材料較少,記錄于此方便節(jié)省大家時(shí)間。本篇以Canon iR C3025打印機(jī)為例,流程大同小異。

    2024年02月12日
    瀏覽(40)
  • 小程序商品如何指定打印機(jī)

    小程序商品如何指定打印機(jī)

    有些商家,可能有多個(gè)倉(cāng)庫(kù)。不同的倉(cāng)庫(kù),存放不同的商品。當(dāng)客戶下單時(shí),小程序如何自動(dòng)按照倉(cāng)庫(kù)拆分訂單,如何讓打印機(jī)自動(dòng)打印對(duì)應(yīng)倉(cāng)庫(kù)的訂單呢?下面就來(lái)介紹一下吧。 1. 設(shè)置訂單分發(fā)模式。進(jìn)入管理員后臺(tái),在待處理訂單后面點(diǎn)擊設(shè)置圖標(biāo)按鈕(僅超級(jí)管理員能

    2024年02月12日
    瀏覽(14)
  • 3D 打印機(jī) G 代碼命令:完整列表和教程

    3D 打印機(jī) G 代碼命令:完整列表和教程

    查看原文 了解 G 代碼命令將開(kāi)啟 3D 打印的下一個(gè)層次。繼續(xù)閱讀以快速了解此代碼的基礎(chǔ)知識(shí)! 內(nèi)容 它是什么? 3D 打印的重要命令 G0 G1:直線運(yùn)動(dòng) G90 G91:絕對(duì)和相對(duì)定位 G28 和 G29:汽車家庭和床調(diào)平 M104、M109、M140 和 M190:設(shè)定溫度 M106 M107:風(fēng)扇控制 程序結(jié)構(gòu) 階段 1:初

    2024年02月03日
    瀏覽(91)
  • 安裝打印機(jī)驅(qū)動(dòng)程序的操作步驟,詳細(xì)方法介紹

    安裝打印機(jī)驅(qū)動(dòng)程序的操作步驟,詳細(xì)方法介紹

    安裝打印機(jī)驅(qū)動(dòng)程序是使用打印機(jī)的前提條件,因此學(xué)會(huì)正確的安裝方法是非常重要的。下面是安裝打印機(jī)驅(qū)動(dòng)程序的詳細(xì)步驟分析,為你全面的講解安裝和出現(xiàn)故障如何處理等問(wèn)題。 一.安裝打印機(jī)的準(zhǔn)備工作 在安裝打印機(jī)驅(qū)動(dòng)程序之前,需要先準(zhǔn)備好一些必要的工具和信

    2024年02月09日
    瀏覽(157)
  • OpenWrt網(wǎng)絡(luò)打印機(jī)TCP/IP共享設(shè)置教程——以703N為例(PCL)

    在本教程中,我們將探討如何在OpenWrt路由器上設(shè)置TCP/IP共享以實(shí)現(xiàn)打印機(jī)的網(wǎng)絡(luò)共享。我們以O(shè)penWrt路由器型號(hào)703N為例,并使用PCL作為打印機(jī)的語(yǔ)言。 步驟1:準(zhǔn)備工作 首先,確保你已經(jīng)在OpenWrt路由器上安裝了最新版本的OpenWrt固件,并且已經(jīng)連接到你的網(wǎng)絡(luò)。另外,確保你

    2024年02月08日
    瀏覽(37)
  • 惠普官網(wǎng)驅(qū)動(dòng)程序與軟件下載,如何安裝打印機(jī)驅(qū)動(dòng)

    惠普官網(wǎng)驅(qū)動(dòng)程序與軟件下載,如何安裝打印機(jī)驅(qū)動(dòng)

    惠普(HP)是一家全球知名的計(jì)算機(jī)硬件制造商,其產(chǎn)品涵蓋臺(tái)式電腦、筆記本電腦、打印機(jī)、掃描儀等。為了保證產(chǎn)品的正常運(yùn)行和最佳性能,惠普為其設(shè)備提供了驅(qū)動(dòng)程序和軟件的下載服務(wù)。本文將介紹如何在惠普官網(wǎng)下載所需的驅(qū)動(dòng)程序和軟件。 一.查找你的產(chǎn)品型號(hào)

    2024年02月09日
    瀏覽(100)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包