Sì infatti con l'utilizzo della libreria giusta sono riuscita a togliere parecchi errori, avrei però bisogno di un vostro parere, visto che non sono un'esperta di c# e nemmeno di stampanti dymo 550…
Questo codice l'ho trovato in internet, è un'app per l'utilizzo della stampante dymo, quello però che mi sfugge è che le variabili SelectedPrinter e SelectedLabelObject non siano valorrizzate e quindi mi danno errore..secondo il vostro parere è un errore del codice, cioè il programmatore che ha scritto questo codice non ha valorizzato le variabili o può essere che io non abbia qualche libreria specifica? grazie
Comunque ho provato a inizializzare le variabili e ho tolto parecchi errori ma non so se è la strada giusta, questo è il codice originario
using DymoSDK.Implementations;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace WPFSDKSample.ViewModels
{
public class MainViewModel : BaseViewModel
{
DymoSDK.Interfaces.IDymoLabel dymoSDKLabel;
public MainViewModel()
{
DymoSDK.App.Init();
dymoSDKLabel = DymoLabel.Instance;
Printers = DymoPrinter.Instance.GetPrinters();
TwinTurboRolls = new List<string>() { "Auto", "Left", "Right" };
}
/// <summary>
/// Open a Dymo label file and load the content in the instance of the class
/// Get the preview image of the label
/// Get the list of object names
/// </summary>
private void OpenFileAction()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "DYMO files |*.label;*.dymo|All files|*.*";
if (openFileDialog.ShowDialog() == true)
{
FileName = openFileDialog.FileName;
// DymoSDK.App.Init();
//Load label from file path
dymoSDKLabel.LoadLabelFromFilePath(FileName);
//Get image preview of the label
dymoSDKLabel.GetPreviewLabel();
//Load image preview in the control
ImageSourcePreview = LoadImage(dymoSDKLabel.Preview);
//Get object names list
LabelObjects = dymoSDKLabel.GetLabelObjects().ToList();
}
}
/// <summary>
/// Print the current loaded label using the selected printer name
/// </summary>
private void PrintLabelAction()
{
int copies = 1;
if (SelectedPrinter != null)
{
//Send to print
if (SelectedPrinter.Name.Contains("Twin Turbo"))
{
int rollSel = SelectedRoll == "Auto" ? 0 : SelectedRoll == "Left" ? 1 : 2;
DymoPrinter.Instance.PrintLabel(dymoSDKLabel, SelectedPrinter.Name, copies, rollSelected: rollSel);
}
else
DymoPrinter.Instance.PrintLabel(dymoSDKLabel, SelectedPrinter.Name, copies);
//If the label contains counter objects
//Update counter object and preview to show the incresead value of the counter
var counterObjs = dymoSDKLabel.GetLabelObjects().Where(w => w.Type == DymoSDK.Interfaces.TypeObject.CounterObject).ToList();
if (counterObjs.Count > 0)
{
foreach (var obj in counterObjs)
dymoSDKLabel.UpdateLabelObject(obj, copies.ToString());
UpdatePreviewAction();
}
}
}
/// <summary>
/// Update the object value using the object name selected
/// </summary>
private void UpdateValueAction()
{
if (SelectedLabelObject != null)
{
//Update label object value
dymoSDKLabel.UpdateLabelObject(SelectedLabelObject, ObjectValue);
UpdatePreviewAction();
}
}